Java GUI编程

119 阅读2分钟

JAVA GUI 编程

一、AWT与Swing

  • AWT 依赖于操作系统的图形库,因此运行时因为操作系统不同功能是其各系统的交集
  • AWT基于本地方法的 C/C++ 程序,运行速度快,适用于嵌入式等追求速度的应用
  • Swing通过 java 代码使得对AWT功能进行了继承和拓展,但运行速度慢,适用于 PC
  • 适配器模式(了解)

image.png

二、中间容器

不能脱离容器单独存在,是Container容器,可添加子组件、嵌套,默认流布局

如 Panel, 其他常用中间容器:JScollPanel,JSplitPanel

三、布局

  1. 流式布局 FlowLayout
  2. 东西南北 BorderLayout
  3. 网格布局 GridLayout

四、对话框 JDailog

Window 的子类,与 JFrame 相似,二者的都是底层容器,默认布局是 BorderLayout

1. 对话框分类

  • 有模式的对话框 , 需要响应,否则将阻塞其他进程的执行

  • 无模式的对话框 , 无需点击激活响应

2. 常见对话框

  • 消息对话框
  • 输入对话框
  • 确认对话框
  • 颜色对话框
  • 文件对话框 JFileChooser(),创建不可见的有模式的对话框
    • showSaveDialog()
    • showOpenDialog()
    • getCurrentDirectory()
    • getSelectFile()
//创建对话框实例,可以用其类的静态方法
import javax.swing.JOptionPane;
public static 
    String showInputDialog(Component parentComponent //为null时在屏幕正前方
            Object message,
            String title,
            int messageType)

3.自定义对话框

  • 通过JDialog创建
  • JDialog(JFrame owner)

五、画笔

类可以通过重写 paint(Graphics g){ } 实现,结合监听器实现绘制

//关键操作
import java.util.ArrayList;
ArrayList points = Arraylist<>();  //记录点集
Point point = new Point(mouse.getX(),mouse.getY());  //存储当前活动点坐标
points.add(point); //当前点添加到点集
mouse.repaint();  //刷新鼠标事件

六、Icon 与 ImgaeIcon

Icon是一个接口,类通过重写抽象方法,可以放在 Label 或 Button,ImageIcon 直接用

1. //本类实现窗口显示及接口绘制
    class icon extends JFrame impelments Icon{
        @Override 
        ...
    }
2. //和icon的差别就是url是地址
    class imageicon extends JFrame{
        URL url = imageicon.class.getResource("#.jpg");
        ImageIcon imgicon = new ImageIcon(url);
        label.setIcon(imgicon);
    }

七、常用基本组件

  • JRadioButton

注意:可以通过设置 ButtonGroup 组实现单选联系

  • JCheckBox
  • JComboBox 下拉框
  • JList 列表框
  • JTextField
  • JPasswordField
  • JTextArea
    JComboBox bar = new JComboBox();
    bar.addItem("正在热映");
    bar.addItem("未来厅");
    container.add(bar);

八、贪食蛇小游戏实战

。。。等待随更

生成jar文件

1. jdk命令生成jar文件

    step1:保存所有的Java文件,运行生成class文件

    step2:编写清单文件,指明程序主清单

    注意:指明主类,文件内容eg. Main-class: Frame.Main 文件名为.mf,必须换行
    
    #为指定文件生成
    jar --help 
    jar cfm Filename.jar conf.mf *.class    #cfm为参数
    
    #带包的:
    jar cfm Filename.jar conf.mf package
    注意:.mf文件与包目录同级,带包的.mf 中主类加包名

2. jar文件运行

1. java -jar #.jar

2. 设置jar文件打开方式为javaw.exe
   step: jar文件右键,打开方式,选择默认程序,在安装文件夹下找到bin文件,找到.javaw.exe程序
   
3. 设置注册表