• AWT中常用组件


    笔记:https://www.yuque.com/huangzhanqi/rhwoir/repuodh23fz01wiv

    仓库Java图形化界面: Java图形化界面学习demo与资料 (gitee.com)

    基本组件

    组件名

    功能

    Button

    Button

    Canvas

    用于绘图的画布

    Checkbox

    复选框组件(也可当做单选框组件使用)

    CheckboxGroup

    用于将多个Checkbox 组件组合成一组, 一组 Checkbox 组件将只有一个可以 被选中 , 即全部变成单选框组件

    Choice

    下拉选择框

    Frame

    窗口 , 在 GUI 程序里通过该类创建窗口

    Label

    标签类,用于放置提示性文本

    List

    JU表框组件,可以添加多项条目

    Panel

    不能单独存在基本容器类,必须放到其他容器中

    Scrollbar

    滑动条组件。如果需要用户输入位于某个范围的值 , 就可以使用滑动条组件 ,比如调 色板中设置 RGB 的三个值所用的滑动条。当创建一个滑动条时,必须指定它的方向、初始值、 滑块的大小、最小值和最大值。

    ScrollPane

    带水平及垂直滚动条的容器组件

    TextArea

    多行文本域

    TextField

    单行文本框

    这些 AWT 组件的用法比较简单,可以查阅 API 文档来获取它们各自的构方法、成员方法等详细信息。

    案例:

    实现下图效果:

    演示代码:

    1. import javax.swing.*;
    2. import java.awt.*;
    3. public class BasicComponentDemo {
    4. Frame frame = new Frame("这里测试基本组件");
    5. //定义一个按钮
    6. Button ok = new Button("确认");
    7. //定义一个复选框组
    8. CheckboxGroup cbg = new CheckboxGroup();
    9. //定义一个单选框,初始处于被选中状态,并添加到cbg组中
    10. Checkbox male = new Checkbox("男", cbg, true);
    11. //定义一个单选框,初始处于未被选中状态,并添加到cbg组中
    12. Checkbox female = new Checkbox("女", cbg, false);
    13. //定义一个复选框,初始处于未被选中状态
    14. Checkbox married = new Checkbox("是否已婚?", false);
    15. //定义一个下拉选择框
    16. Choice colorChooser = new Choice();
    17. //定义一个列表选择框
    18. List colorList = new List(6, true);
    19. //定义一个5行,20列的多行文本域
    20. TextArea ta = new TextArea(5, 20);
    21. //定义一个50列的单行文本域
    22. TextField tf = new TextField(50);
    23. public void init() {
    24. //往下拉选择框中添加内容
    25. colorChooser.add("红色");
    26. colorChooser.add("绿色");
    27. colorChooser.add("蓝色");
    28. //往列表选择框中添加内容
    29. colorList.add("红色");
    30. colorList.add("绿色");
    31. colorList.add("蓝色");
    32. //创建一个装载按钮和文本框的Panel容器
    33. Panel bottom = new Panel();
    34. bottom.add(tf);
    35. bottom.add(ok);
    36. //把bottom添加到Frame的底部
    37. frame.add(bottom,BorderLayout.SOUTH);
    38. //创建一个Panel容器,装载下拉选择框,单选框和复选框
    39. Panel checkPanel = new Panel();
    40. checkPanel.add(colorChooser);
    41. checkPanel.add(male);
    42. checkPanel.add(female);
    43. checkPanel.add(married);
    44. //创建一个垂直排列的Box容器,装载 多行文本域和checkPanel
    45. Box topLeft = Box.createVerticalBox();
    46. topLeft.add(ta);
    47. topLeft.add(checkPanel);
    48. //创建一个水平排列的Box容器,装载topLeft和列表选择框
    49. Box top = Box.createHorizontalBox();
    50. top.add(topLeft);
    51. top.add(colorList);
    52. //将top添加到frame的中间区域
    53. frame.add(top);
    54. //设置frame最佳大小并可见
    55. frame.pack();
    56. frame.setVisible(true);
    57. }
    58. public static void main(String[] args) {
    59. new BasicComponentDemo().init();
    60. }
    61. }

    对话框Dialog

    Dialog

    Dialog 是 Window 类的子类,是 一个容器类,属于特殊组件 。 对话框是可以独立存在的顶级窗口, 因此用法与普通窗口的用法几乎完全一样,但是使用对话框需要注意下面两点:

    • 对话框通常依赖于其他窗口,就是通常需要有一个父窗口;
    • 对话框有非模式(non-modal)和模式(modal)两种,当某个模式对话框被打开后,该模式对话框总是位于它的父窗口之上,在模式对话框被关闭之前,父窗口无法获得焦点。

    方法名称

    方法功能

    Dialog(Frame owner, String title, boolean modal)

    创建一个对话框对象:owner:当前对话框的父窗口title:当前对话框的标题modal:当前对话框是否是模式对话框,true/false

    案例1:

    通过Frame、Button、Dialog实现下图效果:

    演示代码1:

    1. import java.awt.event.ActionEvent;
    2. import java.awt.event.ActionListener;
    3. public class DialogDemo1 {
    4. public static void main(String[] args) {
    5. Frame frame = new Frame("这里测试Dialog");
    6. Dialog d1 = new Dialog(frame, "模式对话框", true);
    7. Dialog d2 = new Dialog(frame, "非模式对话框", false);
    8. Button b1 = new Button("打开模式对话框");
    9. Button b2 = new Button("打开非模式对话框");
    10. //设置对话框的大小和位置
    11. d1.setBounds(20,30,300,400);
    12. d2.setBounds(20,30,300,400);
    13. //给b1和b2绑定监听事件
    14. b1.addActionListener(new ActionListener() {
    15. @Override
    16. public void actionPerformed(ActionEvent e) {
    17. d1.setVisible(true);
    18. }
    19. });
    20. b2.addActionListener(new ActionListener() {
    21. @Override
    22. public void actionPerformed(ActionEvent e) {
    23. d2.setVisible(true);
    24. }
    25. });
    26. //把按钮添加到frame中
    27. frame.add(b1);
    28. frame.add(b2,BorderLayout.SOUTH);
    29. //设置frame最佳大小并可见
    30. frame.pack();
    31. frame.setVisible(true);
    32. }
    33. }

    在Dialog对话框中,可以根据需求,自定义内容

    案例:

    点击按钮,弹出一个模式对话框,其内容如下:

    演示代码:

    1. public class DialogDemo2 {
    2. public static void main(String[] args) {
    3. Frame frame = new Frame("这里测试Dialog");
    4. Dialog d1 = new Dialog(frame, "模式对话框", true);
    5. //往对话框中添加内容
    6. Box vBox = Box.createVerticalBox();
    7. vBox.add(new TextField(15));
    8. vBox.add(new JButton("确认"));
    9. d1.add(vBox);
    10. Button b1 = new Button("打开模式对话框");
    11. //设置对话框的大小和位置
    12. d1.setBounds(20,30,200,100);
    13. //给b1绑定监听事件
    14. b1.addActionListener(new ActionListener() {
    15. @Override
    16. public void actionPerformed(ActionEvent e) {
    17. d1.setVisible(true);
    18. }
    19. });
    20. //把按钮添加到frame中
    21. frame.add(b1);
    22. //设置frame最佳大小并可见
    23. frame.pack();
    24. frame.setVisible(true);
    25. }
    26. }
    FileDialog

    Dialog 类还有 一个子类 : FileDialog ,它代表一个文件对话框,用于打开或者保存 文件,需要注意的是FileDialog无法指定模态或者非模态,这是因为 FileDialog 依赖于运行平台的实现,如果运行平台的文件对话框是模态的,那么 FileDialog 也是模态的;否则就是非模态的 。

    方法名称

    方法功能

    FileDialog(Frame parent, String title, int mode)

    创建一个文件对话框:parent:指定父窗口title:对话框标题mode:文件对话框类型,如果指定为FileDialog.load,用于打开文件,如果指定为FileDialog.SAVE,用于保存文件

    String getDirectory()

    获取被打开或保存文件的绝对路径

    String getFile()

    获取被打开或保存文件的文件名

    案例2:

    使用 Frame、Button和FileDialog完成下图效果:

    演示代码2:

    1. import java.awt.*;
    2. import java.awt.event.ActionEvent;
    3. import java.awt.event.ActionListener;
    4. public class FileDialogTest {
    5. public static void main(String[] args) {
    6. Frame frame = new Frame("这里测试FileDialog");
    7. FileDialog d1 = new FileDialog(frame, "选择需要加载的文件", FileDialog.LOAD);
    8. FileDialog d2 = new FileDialog(frame, "选择需要保存的文件", FileDialog.SAVE);
    9. Button b1 = new Button("打开文件");
    10. Button b2 = new Button("保存文件");
    11. //给按钮添加事件
    12. b1.addActionListener(new ActionListener() {
    13. @Override
    14. public void actionPerformed(ActionEvent e) {
    15. d1.setVisible(true);
    16. //打印用户选择的文件路径和名称
    17. System.out.println("用户选择的文件路径:"+d1.getDirectory());
    18. System.out.println("用户选择的文件名称:"+d1.getFile());
    19. }
    20. });
    21. System.out.println("-------------------------------");
    22. b2.addActionListener(new ActionListener() {
    23. @Override
    24. public void actionPerformed(ActionEvent e) {
    25. d2.setVisible(true);
    26. //打印用户选择的文件路径和名称
    27. System.out.println("用户选择的文件路径:"+d2.getDirectory());
    28. System.out.println("用户选择的文件名称:"+d2.getFile());
    29. }
    30. });
    31. //添加按钮到frame中
    32. frame.add(b1);
    33. frame.add(b2,BorderLayout.SOUTH);
    34. //设置frame最佳大小并可见
    35. frame.pack();
    36. frame.setVisible(true);
    37. }
    38. }

  • 相关阅读:
    git常见使用 --实习中用到的
    跨境电商必读:如何选择适合跨境ERP系统?
    webrtc Native C++视频旋转/裁减/绿屏问题
    大数据学习之Spark基础
    虚拟环境下把python代码打包成exe(小白教程)
    idea报错“Static methods in interface require -target:jvm-1.8”
    LeetCode //C - 86. Partition List
    Java实验报告(三)
    威胁情报思考
    微信小程序开发-微信支付功能【WxMaService 获取openid,WxPayService建微信订单,附有完整前后端代码】
  • 原文地址:https://blog.csdn.net/m0_73843666/article/details/132812391