【小学期】静态页面设计——以学生管理系统为例
使用Swing设计学生管理系统的静态页面
我们将学习如何使用Java Swing来设计一个学生管理系统的静态页面。我们将创建一个主窗口,其中包含一些基本的组件,如标签、文本框、按钮和表格。
(图片来源网络,侵删)
项目结构
首先,假设我们的项目目录结构如下:
student_management
│
├── src
│ ├── model
│ │ ├── Student.java
│ │ └── StudentDAO.java
│ │
│ ├── view
│ │ └── StudentView.java
│ │
│ ├── controller
│ │ └── StudentController.java
│ │
│ └── util
│ ├── DBUtil.java
│ ├── EncodingUtil.java
│ └── OtherUtil.java
│
└── resources
└── database.properties
我们将主要关注view目录下的StudentView.java文件。
1. 创建StudentView类
创建StudentView.java文件,并编写以下代码:
package view;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* 学生管理系统的主视图
*/
public class StudentView extends JFrame {
private JTextField idField;
private JTextField nameField;
private JTextField ageField;
private JTextField gradeField;
private JButton addButton;
private JButton updateButton;
private JButton deleteButton;
private JButton viewButton;
private JTable studentTable;
public StudentView() {
// 设置窗口标题
setTitle("学生管理系统");
// 设置窗口大小
setSize(800, 600);
// 设置窗口关闭操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口居中
setLocationRelativeTo(null);
// 初始化组件
initComponents();
// 设置窗口可见
setVisible(true);
}
/**
* 初始化组件
*/
private void initComponents() {
// 创建面板
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
// 创建顶部面板(表单区域)
JPanel topPanel = new JPanel();
topPanel.setLayout(new GridLayout(5, 2, 10, 10));
// 添加表单组件
topPanel.add(new JLabel("学号:"));
idField = new JTextField();
topPanel.add(idField);
topPanel.add(new JLabel("姓名:"));
nameField = new JTextField();
topPanel.add(nameField);
topPanel.add(new JLabel("年龄:"));
ageField = new JTextField();
topPanel.add(ageField);
topPanel.add(new JLabel("年级:"));
gradeField = new JTextField();
topPanel.add(gradeField);
// 创建按钮面板
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1, 4, 10, 10));
// 添加按钮
addButton = new JButton("添加");
updateButton = new JButton("更新");
deleteButton = new JButton("删除");
viewButton = new JButton("查看");
buttonPanel.add(addButton);
buttonPanel.add(updateButton);
buttonPanel.add(deleteButton);
buttonPanel.add(viewButton);
// 将按钮面板添加到顶部面板
topPanel.add(buttonPanel);
// 创建表格面板
JPanel tablePanel = new JPanel();
studentTable = new JTable();
JScrollPane scrollPane = new JScrollPane(studentTable);
tablePanel.setLayout(new BorderLayout());
tablePanel.add(scrollPane, BorderLayout.CENTER);
// 将顶部面板和表格面板添加到主面板
panel.add(topPanel, BorderLayout.NORTH);
panel.add(tablePanel, BorderLayout.CENTER);
// 将主面板添加到窗口
add(panel);
}
public static void main(String[] args) {
// 显示主窗口
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new StudentView();
}
});
}
}
代码详解:
- 构造方法StudentView:设置窗口标题、大小、关闭操作、居中显示,并初始化组件。
- initComponents方法:初始化所有Swing组件,包括面板、标签、文本框、按钮和表格。
- main方法:使用SwingUtilities.invokeLater确保在事件调度线程上创建和显示GUI。
2. 添加事件监听器
接下来,我们为按钮添加简单的事件监听器。在实际应用中,这些监听器会调用控制器来处理逻辑。
private void initComponents() {
// 创建面板
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
// 创建顶部面板(表单区域)
JPanel topPanel = new JPanel();
topPanel.setLayout(new GridLayout(5, 2, 10, 10));
// 添加表单组件
topPanel.add(new JLabel("学号:"));
idField = new JTextField();
topPanel.add(idField);
topPanel.add(new JLabel("姓名:"));
nameField = new JTextField();
topPanel.add(nameField);
topPanel.add(new JLabel("年龄:"));
ageField = new JTextField();
topPanel.add(ageField);
topPanel.add(new JLabel("年级:"));
gradeField = new JTextField();
topPanel.add(gradeField);
// 创建按钮面板
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(1, 4, 10, 10));
// 添加按钮
addButton = new JButton("添加");
updateButton = new JButton("更新");
deleteButton = new JButton("删除");
viewButton = new JButton("查看");
buttonPanel.add(addButton);
buttonPanel.add(updateButton);
buttonPanel.add(deleteButton);
buttonPanel.add(viewButton);
// 添加事件监听器
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 添加学生信息的逻辑
JOptionPane.showMessageDialog(StudentView.this, "添加学生信息");
}
});
updateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 更新学生信息的逻辑
JOptionPane.showMessageDialog(StudentView.this, "更新学生信息");
}
});
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 删除学生信息的逻辑
JOptionPane.showMessageDialog(StudentView.this, "删除学生信息");
}
});
viewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 查看学生信息的逻辑
JOptionPane.showMessageDialog(StudentView.this, "查看学生信息");
}
});
// 将按钮面板添加到顶部面板
topPanel.add(buttonPanel);
// 创建表格面板
JPanel tablePanel = new JPanel();
studentTable = new JTable();
JScrollPane scrollPane = new JScrollPane(studentTable);
tablePanel.setLayout(new BorderLayout());
tablePanel.add(scrollPane, BorderLayout.CENTER);
// 将顶部面板和表格面板添加到主面板
panel.add(topPanel, BorderLayout.NORTH);
panel.add(tablePanel, BorderLayout.CENTER);
// 将主面板添加到窗口
add(panel);
}
代码详解:
- 为每个按钮添加了ActionListener,在按钮点击时显示一个消息对话框。实际应用中,你可以在这些监听器中调用控制器的方法来处理逻辑。
总结
在本文中,我们设计了一个使用Swing创建的学生管理系统的静态页面。我们实现了以下内容:
- 创建主窗口:设置窗口标题、大小、关闭操作、居中显示。
- 初始化组件:包括面板、标签、文本框、按钮和表格。
- 添加事件监听器:为按钮添加简单的事件监听器。
通过这种方式,我们可以创建一个简单而功能齐全的GUI,为学生管理系统的进一步开发打下基础。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
