文章目录
八、项目开发步骤
(十)创建应用程序类
- 创建应用程序类,存放全局数据,所有窗口界面都可以共享应用程序类里存放的数据
1、创建app子包
- 在
net.donogyan.student
根包里创建app
子包
2、创建Application类
- 在
net.donogyan.student。app
包里创建Application
类
package net.dongyan.student.app;
/**
* 功能:应用程序类,存放全局数据
* 作者:董艳
* 日期:2023年06月16日
*/
public class Application {
public static int id;//登录用户标识符
public static String username;//登录用户名
public static String password;//登录用户密码
public static LoginFrame loginFrame;//登录窗口
public static MainFrame mainFrame;//主窗口
public static RegisterFrame registerFrame;//注册窗口
}
- 此时,三个窗口界面类还未创建,因此程序会报错:无法解析符号
- 在
net.dongyan.student
根包里创建gui
子包(gui:graphical user interface - 图形用户界面),在里面创建三个类:LoginFrame、MainFrame与RegisterFrame。
- 此时,Application类就不会报错
(十)创建应用程序类
1、创建主界面窗口MainFrame
- 先来做一个空白的主界面窗口
- 继承JFrame类
- 添加构造方法(带标题参数的构造方法)
import javax.swing.*;
/**
* 功能:主界面窗口
* 作者:董艳
* 日期:2023年06月16日
*/
public class MainFrame extends JFrame {
//构造方法
public MainFrame(String title) {
super(title);
}
}
- 在类的声明部分声明两个变量:状态服务变量与状态变量
import javax.swing.*;
/**
* 功能:主界面窗口
* 作者:董艳
* 日期:2023年06月16日
*/
public class MainFrame extends JFrame {
public Status status;//状态对象
private StatusService statusService;//状态服务对象
//构造方法
public MainFrame(String title) {
super(title);
}
}
- 创建初始化图形用户界面方法initGUI()
public void initGUI() {
//创建状态服务对象
statusService = new StatusServiceImpl();
//获取状态对象
status = statusService.findStatusById(1);
//设置窗口尺寸
setSize(800, 640);
//设置窗口可见
setVisible(true);
//设置窗口屏幕居中
setLocationRelativeTo(null);
//设置窗口标题
setTitle("学生信息管理系统" + status.getVersion());
//设置窗口默认关闭方式
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
-
在构造方法里调用初始化图形用户界面方法initGUI()
-
编写主方法代码,实例化主窗口,设置空标题,保存到Appllication的变量mainFrame里
-
如果希望单击关闭按钮后,弹出一个询问框,询问用户是否要退出系统,那么就不用采用上述方法,而应该采用注册窗口监听器的方法,通过编写事件处理方法来弹出询问对话框。
-
运行程序,查看结果
2、创建用户登录窗口LoginFrame
-
继承JFrame,创建LoginFrame
-
创建初始化图形用户界面方法
private void initGUI(){
//设置窗口大小
setSize(250,200);
//设置窗口屏幕居中
setLocationRelativeTo(null);
//设置窗口屏幕不可调整大小
setResizable(false);
//设置窗口可见
setVisible(true);
//设置窗口默认关闭操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
- 添加单参构造方法
public LoginFrame(String title){
super(title);
initGUI();
}
-
添加主方法,实例化用户登录窗口
-
运行程序,查看结果
-
空白的用户登录窗口,不能调整大小
-
声明用户登录窗口所需变量
-
实例化组件
//实例化组件(面板与控件)
panel = (JPanel) getContentPane();
panel1= new JPanel();
panel2 = new JPanel();
panel3 = new JPanel();
lblUsername = new JLabel("用户名:");
lblPassword = new JLabel("密 码:");
txtUsername = new JTextField(15);
txtPassword = new JPasswordField(15)