【小学期项目】静态页面设计实例:学生管理系统

使用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,为学生管理系统的进一步开发打下基础。

    作者:小龙

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【小学期项目】静态页面设计实例:学生管理系统

    发表回复