Java Swing 开发总结汇总贴
文章目录
1. Java GUI 开发思路
a. 程序的编写
IDEA + Swing + JFormDesigner(可视化开发插件)
eclipse + Swing + WindowBuilder(可视化开发插件)
IDEA + JavaFX + SceneBuilder(可视化开发插件)
b. 项目打包封装成exe程序
先在IDE中将项目打包成 jar 包,再通过 exe4j 将 jar 包转换成exe可执行文件
c. 项目发布到GitHub上
其中的一种步骤:
1、在浏览器端登录GitHub账号
2、点击’New Repository’创建一个新的仓库
3、在电脑端打开 git-bash (需要事先在电脑上安装好Git)
4、在终端中通过 cd 命令切换到项目根目录下
5、进行初始化:git init
6、将本目录下的所有文件添加到 git 管理:git add .
7、提交本地仓库:git commit -m “备注”
8、关联到Github上:git remote add origin https://仓库地址
9、将本地代码提交至GitHub:git push -u origin master
2. 监听器Listener的三种写法
通过实际项目来进行说明
Demo类
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
//监听器Listener的三种写法:内部类、匿名内部类、Lambda表达式
/**
* Demo为自定义类,继承父类JFrame
* showTime()为自定义函数
**/
public class Demo extends JFrame
{
//创建了一个标签类的成员变量label,文本内容显示"00:00:00"
JLabel label = new JLabel("00:00:00"); //父类的属性,可被内部类访问
public Demo() {
super();
//创建并设置容器panel
JPanel panel = new JPanel();
this.setContentPane(panel);
//创建按钮并将其添加到容器panel中
JButton button1 = new JButton("按钮1");
panel.add(button1);
JButton button2 = new JButton("按钮2");
panel.add(button2);
JButton button3 = new JButton("按钮3");
panel.add(button3);
//将label添加到容器panel中
panel.add(label);
//文本框的创建,文本框设置为20个英文字母的宽度,将其添加到容器中
JTextField textField = new JTextField(20);
panel.add(textField);
//文本框显示内容的设置
textField.setText("Hello World");
//button1、2、3实现的功能是一样的
//按钮button1事件-内部类:
MyActionListener listener = new MyActionListener();
button1.addActionListener(listener);
//按钮button2事件-匿名内部类:
button2.addActionListener(new ActionListener()
{
@Override //实现方法
public void actionPerformed(ActionEvent e) {
showTime();
}
});
//按钮button3事件-lambda表达式:
button3.addActionListener( (selfDefine) -> {
showTime(); } );
}
//MyActionListener是子类,也是内部类,ActionListener是接口,接口类不直接使用,要派生出一个子类
private class MyActionListener implements ActionListener
{
@Override //实现方法
public void actionPerformed(ActionEvent e) {
showTime();
}
}
//自定义函数用于显示系统时间
public void showTime()
{
SimpleDateFormat date = new SimpleDateFormat("HH:mm:ss");
//获取当前系统时间并格式化存储在timeStr中
String timeStr = date.format(new Date());
System.out.println(timeStr);
//标签label文本内容显示字符串timeStr的内容,即显示系统时间
label.setText(timeStr);
}
}
main类
import javax.swing.*;
public class main {
//该程序采用Java Swing进行开发,IDE为IntelliJ IDEA 2021.1
public static void main(String[] args)
{
//JFrame指一个窗口,构造方法的参数为窗口标题
JFrame frame = new Demo(); //多态
Demo demo = new Demo();
//设置窗口标题
frame.setTitle("Demo");
//设置窗口大小
frame.setSize