【小学期】静态页面设计——以学生管理系统为例

2024-07-01 1493阅读

使用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();
            }
        });
    }
}

代码详解:

  1. 构造方法StudentView:设置窗口标题、大小、关闭操作、居中显示,并初始化组件。
  2. initComponents方法:初始化所有Swing组件,包括面板、标签、文本框、按钮和表格。
  3. 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创建的学生管理系统的静态页面。我们实现了以下内容:

    1. 创建主窗口:设置窗口标题、大小、关闭操作、居中显示。
    2. 初始化组件:包括面板、标签、文本框、按钮和表格。
    3. 添加事件监听器:为按钮添加简单的事件监听器。

    通过这种方式,我们可以创建一个简单而功能齐全的GUI,为学生管理系统的进一步开发打下基础。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]