小工具知识网

当前位置: 首页 > 行业知识 > JAVA GUI 学生信息管理系统(Swing)(详细)

行业知识

JAVA GUI 学生信息管理系统(Swing)(详细)

2026-10-26 16:41:43 来源:互联网转载

项目名称: 学生信息管理系统

样品展示:

学生管理系统


系统简介(思维):

该项目用于学习巩固java知识,包含很多知识应用,(注意:本篇文章项目不含数据库内容,采取IO流代替写进文本,保存数据),与君共同成长学习,源代码加微:wxzhangguangpeng


技术需求:

  • java基础知识
  • 面向对象
  • IO流
  • 异常处理
  • Swing程序设计

    实现步骤(并不规范,个人思路):

    第一步:注册界面

    1. 新建类:Register,继承JFrame类
    2. 窗体基础调整
    3. 新建标签
    4. 将标签加入到窗体容器中
    5. 如下
    package StudentManagementSystem12;import javax.swing.*;import java.awt.*;public class Register extends JFrame{    public Register() {        setTitle("StudentManagementSystem");        setBounds(600, 200, 350, 300);//窗体标题        setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭方式的设置        Container c1 = getContentPane();//将窗体变为容器        JPanel jPanel1 = new JPanel(new BorderLayout()); // 使用 BorderLayout布局管理器        JLabel jLabel1 = new JLabel("Register");//用标签写出标题        Font font = new Font("Arial", Font.PLAIN, 40);//调整字体大小和样式        jLabel1.setFont(font);        jLabel1.setForeground(Color.BLACK);        jLabel1.setHorizontalAlignment(SwingConstants.CENTER);//标题位置        jPanel1.add(jLabel1, BorderLayout.NORTH); // 将 JLabel 添加到北部        c1.add(jPanel1);        setVisible(true);//显示窗体    }        public static void main(String[] args) {        new Register();    }}
    1. 添加用户名和密码的文本框和文字标签,用SpringLayout布局管理器来规划位置
    2. 添加三个按钮,也用SpringLayout布局管理器来规划位置
    3. 根据事件监听器的知识进行按钮的制定
    4. HomePage可以不设置监听器
    5. 完整的注册注册代码文件如下(账号文件位置需要自己修改)
    package StudentManagementSystem;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import java.util.HashMap;import java.util.Map;public class Register extends JFrame {    public JTextField textField1;    public JPasswordField textField2;    public JPasswordField textField3;    public Register() {        setTitle("StudentManagementSystem");        setBounds(600, 200, 350, 300);        setDefaultCloseOperation(EXIT_ON_CLOSE);        Container c1 = getContentPane();        JPanel jPanel1 = new JPanel(new BorderLayout()); // 使用 BorderLayout        JLabel jLabel1 = new JLabel("Register");        Font font = new Font("Arial", Font.PLAIN, 40);        jLabel1.setFont(font);        jLabel1.setForeground(Color.BLACK);        jLabel1.setHorizontalAlignment(SwingConstants.CENTER);        jPanel1.add(jLabel1, BorderLayout.NORTH); // 将 JLabel 添加到北部        SpringLayout layout = new SpringLayout();        JPanel panel = new JPanel(layout);        JLabel label1 = new JLabel("Enter name:");        textField1 = new JTextField(20);        JLabel label2 = new JLabel("Enter password:");        textField2 = new JPasswordField(20);        JLabel label3 = new JLabel("Re-entered Password:");        textField3 = new JPasswordField(20);        // 添加组件到 SpringLayout 面板        panel.add(label1);        panel.add(textField1);        panel.add(label2);        panel.add(textField2);        panel.add(label3);        panel.add(textField3);        // 定义组件之间的约束关系        layout.putConstraint(SpringLayout.WEST, label1, 5, SpringLayout.WEST, panel);        layout.putConstraint(SpringLayout.NORTH, label1, 5, SpringLayout.NORTH, panel);        layout.putConstraint(SpringLayout.WEST, textField1, 64, SpringLayout.EAST, label1);        layout.putConstraint(SpringLayout.NORTH, textField1, 5, SpringLayout.NORTH, panel);        layout.putConstraint(SpringLayout.WEST, label2, 5, SpringLayout.WEST, panel);        layout.putConstraint(SpringLayout.NORTH, label2, 10, SpringLayout.SOUTH, textField1);        layout.putConstraint(SpringLayout.WEST, textField2, 40, SpringLayout.EAST, label2);        layout.putConstraint(SpringLayout.NORTH, textField2, 10, SpringLayout.SOUTH, textField1);        layout.putConstraint(SpringLayout.WEST, label3, 5, SpringLayout.WEST, panel);        layout.putConstraint(SpringLayout.NORTH, label3, 10, SpringLayout.SOUTH, textField2);        layout.putConstraint(SpringLayout.WEST, textField3, 5, SpringLayout.EAST, label3);        layout.putConstraint(SpringLayout.NORTH, textField3, 10, SpringLayout.SOUTH, textField2);        SpringLayout layout1 = new SpringLayout();        JPanel p1 = new JPanel(layout);        JButton jb1 = new JButton("Sign up");        jb1.addActionListener(new jb1action());        JButton jb2 = new JButton("Clean");        jb2.addActionListener(new jb2action());        JButton jb3 = new JButton("HomePage");        jb3.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new HomePage();            }        });        panel.add(jb1);        panel.add(jb2);        panel.add(jb3);        layout.putConstraint(SpringLayout.WEST, jb1, 30, SpringLayout.WEST, panel);        layout.putConstraint(SpringLayout.NORTH, jb1, 10, SpringLayout.SOUTH, textField3);        layout.putConstraint(SpringLayout.WEST, jb2, 20, SpringLayout.EAST, jb1);        layout.putConstraint(SpringLayout.NORTH, jb2, 10, SpringLayout.SOUTH, textField3);        layout.putConstraint(SpringLayout.WEST, jb3, 20, SpringLayout.EAST, jb2);        layout.putConstraint(SpringLayout.NORTH, jb3, 10, SpringLayout.SOUTH, textField3);        jPanel1.add(panel, BorderLayout.CENTER); // 将 SpringLayout 的 panel 添加到中部        c1.add(jPanel1);        setVisible(true);    }    private class jb1action implements ActionListener{        @Override        public void actionPerformed(ActionEvent e) {            Map  UInfor = new HashMap();            String filePath = "D:\jdk\code\GUI\src\StudentManagementSystem\Register.txt";            try {                // 创建一个文件读取对象                FileReader fileReader = new FileReader(filePath);                BufferedReader bufferedReader = new BufferedReader(fileReader);                String line;                while ((line = bufferedReader.readLine()) != null) {                    String[] parts = line.split(" : ");                    if (parts.length == 2) {                        String key = parts[0];                        String value = parts[1];                        UInfor.put(key, value);                    }                }                bufferedReader.close();            } catch (IOException ex) {                System.out.println("读取文件时出现错误:" + ex.getMessage());            }            String getUseName = textField1.getText();            char[] ch1 = textField2.getPassword();            String getGetPassword1 = new String(ch1);            char[] ch2 = textField3.getPassword();            String getGetPassword2 = new String(ch2);            if (getGetPassword1.equals(getGetPassword2)){                JOptionPane.showMessageDialog(Register.this,"Register successfully!");                UInfor.put(getUseName,getGetPassword1);                File file = new File("D:\jdk\code\GUI\src\StudentManagementSystem\Register.txt");                FileWriter fileWriter = null;                try {                    fileWriter = new FileWriter(file);                } catch (IOException ex) {                    throw new RuntimeException(ex);                }                BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);                for (Map.Entry entry : UInfor.entrySet()) {                    String line = entry.getKey() + " : " + entry.getValue();                    try {                        bufferedWriter.write(line);                    } catch (IOException ex) {                        throw new RuntimeException(ex);                    }                    try {                        bufferedWriter.newLine();                    } catch (IOException ex) {                        throw new RuntimeException(ex);                    }                }                try {                    bufferedWriter.close();                } catch (IOException ex) {                    throw new RuntimeException(ex);                }                System.out.println("HashMap内容已写入文件:" + file);                dispose();            }else{                JOptionPane.showMessageDialog(Register.this,"Password and Re-entered Password do not match!");                textField2.setText("");                textField3.setText("");            }        }    }    private class jb2action implements ActionListener {        @Override        public void actionPerformed(ActionEvent e) {            textField1.setText("");            textField2.setText("");            textField3.setText("");        }    }}

    第二步:登陆界面

    1. 新建类:Login
    2. 窗体设置,组件设置
    3. 读取账号文本
    4. 判断用户名和密码
    5. 登陆成功,转换界面
    6. 完整代码如下:
    package StudentManagementSystem;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import java.util.HashMap;import java.util.Map;public class Login extends JFrame {    public JTextField textField1;    public JPasswordField textField2;    public Login(){        setTitle("StudentManagementSystem");        setBounds(600, 200, 350, 300);        setDefaultCloseOperation(EXIT_ON_CLOSE);        Container c1 = getContentPane();        JPanel jPanel1 = new JPanel(new BorderLayout()); // 使用 BorderLayout        JLabel jLabel1 = new JLabel("Login");        Font font = new Font("Arial", Font.PLAIN, 40);        jLabel1.setFont(font);        jLabel1.setForeground(Color.BLACK);        jLabel1.setHorizontalAlignment(SwingConstants.CENTER);        jPanel1.add(jLabel1, BorderLayout.NORTH); // 将 JLabel 添加到北部        SpringLayout layout = new SpringLayout();        JPanel panel = new JPanel(layout);        JLabel label1 = new JLabel("Enter name:");        textField1 = new JTextField(20);        JLabel label2 = new JLabel("Enter password:");        textField2 = new JPasswordField(20);        // 添加组件到 SpringLayout 面板        panel.add(label1);        panel.add(textField1);        panel.add(label2);        panel.add(textField2);        // 定义组件之间的约束关系        layout.putConstraint(SpringLayout.WEST, label1, 5, SpringLayout.WEST, panel);        layout.putConstraint(SpringLayout.NORTH, label1, 5, SpringLayout.NORTH, panel);        layout.putConstraint(SpringLayout.WEST, textField1, 64, SpringLayout.EAST, label1);        layout.putConstraint(SpringLayout.NORTH, textField1, 5, SpringLayout.NORTH, panel);        layout.putConstraint(SpringLayout.WEST, label2, 5, SpringLayout.WEST, panel);        layout.putConstraint(SpringLayout.NORTH, label2, 10, SpringLayout.SOUTH, textField1);        layout.putConstraint(SpringLayout.WEST, textField2, 40, SpringLayout.EAST, label2);        layout.putConstraint(SpringLayout.NORTH, textField2, 10, SpringLayout.SOUTH, textField1);        SpringLayout layout1 = new SpringLayout();        JPanel p1 = new JPanel(layout);        JButton jb1 = new JButton("Login up");        jb1.addActionListener(new jb1action());        JButton jb2 = new JButton("Clean");        jb2.addActionListener(new jb2action());        JButton jb3 = new JButton("Sign up");        jb3.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new Register();            }        });        panel.add(jb1);        panel.add(jb2);        panel.add(jb3);        layout.putConstraint(SpringLayout.WEST, jb1, 30, SpringLayout.WEST, panel);        layout.putConstraint(SpringLayout.NORTH, jb1, 10, SpringLayout.SOUTH, textField2);        layout.putConstraint(SpringLayout.WEST, jb2, 20, SpringLayout.EAST, jb1);        layout.putConstraint(SpringLayout.NORTH, jb2, 10, SpringLayout.SOUTH, textField2);        layout.putConstraint(SpringLayout.WEST, jb3, 20, SpringLayout.EAST, jb2);        layout.putConstraint(SpringLayout.NORTH, jb3, 10, SpringLayout.SOUTH, textField2);        jPanel1.add(panel, BorderLayout.CENTER); // 将 SpringLayout 的 panel 添加到中部        c1.add(jPanel1);        setVisible(true);    }    private class jb2action implements ActionListener {        @Override        public void actionPerformed(ActionEvent e) {            textField1.setText("");            textField2.setText("");        }    }    private class jb1action implements ActionListener {        @Override        public void actionPerformed(ActionEvent e) {            String filePath = "D:\jdk\code\GUI\src\StudentManagementSystem\Register.txt";            Map UInfor = new HashMap();            FileReader fileReader;            {                try {                    fileReader = new FileReader(filePath);                    BufferedReader bufferedReader = new BufferedReader(fileReader);                    String line;                    while ((line = bufferedReader.readLine()) != null) {                        String[] parts = line.split(" : ");                        if (parts.length == 2) {                            String key = parts[0];                            String value = parts[1];                            UInfor.put(key, value);                        }                    }                    bufferedReader.close();                } catch (IOException ex) {                    System.out.println("读取文件时候出现错误:"+ex.getMessage());                }            }            String getUseName = textField1.getText();            char[] ch1 = textField2.getPassword();            String getGetPassword1 = new String(ch1);            boolean flag = UInfor.containsKey(getUseName);            if (flag && UInfor.get(getUseName).equals(getGetPassword1)){                JOptionPane.showMessageDialog(Login.this,"Login successfully!");                new HomePage();                dispose();            }else {                JOptionPane.showMessageDialog(Login.this,"User name or password error!");                textField1.setText("");                textField2.setText("");            }        }    }}

    第三步:学生类

    package StudentManagementSystem;import java.io.Serializable;public class Student implements Serializable {    private String name;    private String age;    private String id;    private String grade;    private String gender;    public Student() {    }    public Student(String name, String age, String id, String grade, String gender) {        this.name = name;        this.age = age;        this.id = id;        this.grade = grade;        this.gender = gender;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getGrade() {        return grade;    }    public void setGrade(String grade) {        this.grade = grade;    }    public String getGender() {        return gender;    }    public void setGender(String gender) {        this.gender = gender;    }    @Override    public String toString() {        return "name='" + name + '\'' +                ", age='" + age + '\'' +                ", id='" + id + '\'' +                ", grade='" + grade + '\'' +                ", gender='" + gender + '\'';    }}

    第四步: 添加学生界面

    废话不多说,上代码(关于文件路径,请君自行修改):

    package StudentManagementSystem;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import java.util.ArrayList;public class AddStudent extends JFrame {    public AddStudent() {        setTitle("StudentManagementSystem");        setBounds(600, 200, 400, 400);        setDefaultCloseOperation(EXIT_ON_CLOSE);        Container container = getContentPane();        SpringLayout layout = new SpringLayout();        JPanel mainPanel = new JPanel(layout);        JLabel titleLabel = new JLabel("Add Student");        Font titleFont = new Font("Arial", Font.PLAIN, 30);        titleLabel.setFont(titleFont);        titleLabel.setForeground(Color.BLACK);        JLabel nameLabel = new JLabel("Enter your name:");        JTextField nameField = new JTextField(15);        JLabel ageLabel = new JLabel("Select your age:");        String[] ages = {"Under 18", "18-30", "30-50", "50+"};        JComboBox ageComboBox = new JComboBox(ages);        JLabel idLabel = new JLabel("Enter your ID:");        JTextField idField = new JTextField(15);        JLabel gradeLabel = new JLabel("Select your grade:");        String[] grades = {"Freshman", "Sophomore", "Junior", "Senior"};        JComboBox gradeComboBox = new JComboBox(grades);        JLabel genderLabel = new JLabel("Select your gender:");        JRadioButton maleRadioButton = new JRadioButton("Male");        JRadioButton femaleRadioButton = new JRadioButton("Female");        ButtonGroup genderGroup = new ButtonGroup();        genderGroup.add(maleRadioButton);        genderGroup.add(femaleRadioButton);        JPanel genderPanel = new JPanel();        genderPanel.add(maleRadioButton);        genderPanel.add(femaleRadioButton);        JButton addButton = new JButton("Add Student");        addButton.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                if (nameField.getText().isEmpty()){                    JOptionPane.showMessageDialog(AddStudent.this,"Name must be filled in!");                }else {                    String gender = "";                    if (maleRadioButton.isSelected()) {                        gender = "Male";                    } else if (femaleRadioButton.isSelected()) {                        gender = "Female";                    }                    Student student = new Student(nameField.getText(), ageComboBox.getSelectedItem().toString(),idField.getText(),gradeComboBox.getSelectedItem().toString(),gender);                    System.out.println(student);                    // 从文件中读取 studentList                    //读取                    ArrayList list;                    try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\jdk\code\GUI\src\StudentManagementSystem\students.dat"))) {                        list = (ArrayList) ois.readObject();                        System.out.println("Student list has been read from the file.");                    } catch (IOException | ClassNotFoundException xe) {                        xe.printStackTrace();                        list = new ArrayList(); // 如果读取失败,则初始化一个新的列表                    }                    //写入                    list.add(student);                    System.out.println(list.toString());                    try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\jdk\code\GUI\src\StudentManagementSystem\students.dat"))) {                        oos.writeObject(list);                        System.out.println("Student list has been written to the file.");                    } catch (IOException ex) {                        ex.printStackTrace();                    }                    JOptionPane.showMessageDialog(AddStudent.this,"Student added successfully!");                }            }        });        JButton HomePage = new JButton("HomePage");        HomePage.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new HomePage();                dispose();            }        });        mainPanel.add(titleLabel);        mainPanel.add(nameLabel);        mainPanel.add(nameField);        mainPanel.add(ageLabel);        mainPanel.add(ageComboBox);        mainPanel.add(idLabel);        mainPanel.add(idField);        mainPanel.add(gradeLabel);        mainPanel.add(gradeComboBox);        mainPanel.add(genderLabel);        mainPanel.add(genderPanel);        mainPanel.add(addButton);        mainPanel.add(HomePage);        layout.putConstraint(SpringLayout.HORIZONTAL_CENTER, titleLabel, 0, SpringLayout.HORIZONTAL_CENTER, mainPanel);        layout.putConstraint(SpringLayout.NORTH, titleLabel, 10, SpringLayout.NORTH, mainPanel);        layout.putConstraint(SpringLayout.WEST, nameLabel, 10, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, nameLabel, 50, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, nameField, 10, SpringLayout.EAST, nameLabel);        layout.putConstraint(SpringLayout.NORTH, nameField, 46, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, ageLabel, 10, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, ageLabel, 30, SpringLayout.SOUTH, nameLabel);        layout.putConstraint(SpringLayout.WEST, ageComboBox, 10, SpringLayout.EAST, ageLabel);        layout.putConstraint(SpringLayout.NORTH, ageComboBox, 26, SpringLayout.SOUTH, nameLabel);        layout.putConstraint(SpringLayout.WEST, idLabel, 10, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, idLabel, 30, SpringLayout.SOUTH, ageLabel);        layout.putConstraint(SpringLayout.WEST, idField, 10, SpringLayout.EAST, idLabel);        layout.putConstraint(SpringLayout.NORTH, idField, 26, SpringLayout.SOUTH, ageLabel);        layout.putConstraint(SpringLayout.WEST, gradeLabel, 10, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, gradeLabel, 30, SpringLayout.SOUTH, idLabel);        layout.putConstraint(SpringLayout.WEST, gradeComboBox, 10, SpringLayout.EAST, gradeLabel);        layout.putConstraint(SpringLayout.NORTH, gradeComboBox, 26, SpringLayout.SOUTH, idLabel);        layout.putConstraint(SpringLayout.WEST, genderLabel, 10, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, genderLabel, 30, SpringLayout.SOUTH, gradeLabel);        layout.putConstraint(SpringLayout.WEST, genderPanel, 10, SpringLayout.EAST, genderLabel);        layout.putConstraint(SpringLayout.NORTH, genderPanel, 26, SpringLayout.SOUTH, gradeLabel);        layout.putConstraint(SpringLayout.WEST, addButton, 70, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, addButton, 30, SpringLayout.SOUTH, genderPanel);        layout.putConstraint(SpringLayout.WEST, HomePage, 130, SpringLayout.WEST, addButton);        layout.putConstraint(SpringLayout.NORTH, HomePage, 30, SpringLayout.SOUTH, genderPanel);        container.add(mainPanel);        setVisible(true);    }}

    第五步: 展现学生信息界面

    废话不多说,上代码(关于文件路径,请君自行修改):

    package StudentManagementSystem;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileInputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.util.ArrayList;public class CheckStudent extends JFrame {    private String text = "Show : \n";    private JTextArea textArea;    private JTextField nameField;    public CheckStudent(){        setTitle("StudentManagementSystem");        setBounds(600, 200, 500, 400);        setDefaultCloseOperation(EXIT_ON_CLOSE);        Container c1 = getContentPane();        SpringLayout layout = new SpringLayout();        JPanel mainPanel = new JPanel(layout);        JLabel titleLabel = new JLabel("Check Student");        Font font = new Font("Arial", Font.PLAIN, 40);        titleLabel.setFont(font);        titleLabel.setForeground(Color.BLACK);        titleLabel.setHorizontalAlignment(SwingConstants.CENTER);        JLabel nameLabel = new JLabel("Enter the query name:");        nameField = new JTextField(7);        JButton jb1 = new JButton(" Query");        jb1.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                text = "Show : \n";                ArrayList list;                try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\jdk\code\GUI\src\StudentManagementSystem\students.dat"))) {                    list = (ArrayList) ois.readObject();                    System.out.println("Student list has been read from the file.");                } catch (IOException | ClassNotFoundException xe) {                    xe.printStackTrace();                    list = new ArrayList(); // 如果读取失败,则初始化一个新的列表                }                String namecheck = nameField.getText();                for (Student student : list) {                    if (student.getName().equals(namecheck)){                        text += student.toString() + "\n";                    }                }                if (text.equals("Show : \n")){                    JOptionPane.showMessageDialog(CheckStudent.this,"Students with this name can't be found!");                }                textArea.setText(text);            }        });        JButton jb2 = new JButton("Show all");        jb2.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                ArrayList list;                try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\jdk\code\GUI\src\StudentManagementSystem\students.dat"))) {                    list = (ArrayList) ois.readObject();                    System.out.println("Student list has been read from the file.");                } catch (IOException | ClassNotFoundException xe) {                    xe.printStackTrace();                    list = new ArrayList(); // 如果读取失败,则初始化一个新的列表                }                text = "Show : \n";                for (Student student : list) {                    text += student.toString() + "\n";                }                System.out.println(text);                textArea.setText(text);            }        });        JButton jb3 = new JButton("Clean");        jb3.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                nameField.setText("");            }        });        textArea = new JTextArea(12,51);        textArea.setText(text);        JScrollPane scrollPane = new JScrollPane(textArea);        JButton jb4 = new JButton("HomePage");        jb4.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new HomePage();                dispose();            }        });        mainPanel.add(titleLabel);        mainPanel.add(nameLabel);        mainPanel.add(nameField);        mainPanel.add(jb1);        mainPanel.add(jb2);        mainPanel.add(jb3);        mainPanel.add(scrollPane);        mainPanel.add(jb4);        layout.putConstraint(SpringLayout.HORIZONTAL_CENTER, titleLabel, 0, SpringLayout.HORIZONTAL_CENTER, mainPanel);        layout.putConstraint(SpringLayout.NORTH, titleLabel, 10, SpringLayout.NORTH, mainPanel);        layout.putConstraint(SpringLayout.WEST, nameLabel, 10, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, nameLabel, 70, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, nameField, 10, SpringLayout.EAST, nameLabel);        layout.putConstraint(SpringLayout.NORTH, nameField, 70, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, jb1, 230, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, jb1, 65, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, jb2, 10, SpringLayout.EAST, jb1);        layout.putConstraint(SpringLayout.NORTH, jb2, 65, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, jb3, 10, SpringLayout.EAST, jb2);        layout.putConstraint(SpringLayout.NORTH, jb3, 65, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, scrollPane, 10, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, scrollPane, 30, SpringLayout.NORTH, nameLabel);        layout.putConstraint(SpringLayout.HORIZONTAL_CENTER, jb4, 0, SpringLayout.HORIZONTAL_CENTER, mainPanel);        layout.putConstraint(SpringLayout.NORTH, jb4, 200, SpringLayout.NORTH, scrollPane);        c1.add(mainPanel);        setVisible(true);    }}

    第六步: 删除学生信息界面

    废话不多说,上代码(关于文件路径,请君自行修改):

    package StudentManagementSystem;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import java.util.ArrayList;import java.util.Iterator;public class DeleteStudentInfo extends JFrame {    private JTextField nameField;    public DeleteStudentInfo(){        setTitle("StudentManagementSystem");        setBounds(600, 200, 500, 300);        setDefaultCloseOperation(EXIT_ON_CLOSE);        Container c1 = getContentPane();        SpringLayout layout = new SpringLayout();        JPanel mainPanel = new JPanel(layout);        JLabel titleLabel = new JLabel("Delete Student Info");        Font font = new Font("Arial", Font.PLAIN, 40);        titleLabel.setFont(font);        titleLabel.setForeground(Color.BLACK);        titleLabel.setHorizontalAlignment(SwingConstants.CENTER);        JLabel nameLabel = new JLabel("Enter the delete name:");        nameField = new JTextField(17);        JButton jb1 = new JButton("Delete");        jb1.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                ArrayList list;                try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\jdk\code\GUI\src\StudentManagementSystem\students.dat"))) {                    list = (ArrayList) ois.readObject();                    System.out.println("Student list has been read from the file.");                } catch (IOException | ClassNotFoundException xe) {                    xe.printStackTrace();                    list = new ArrayList(); // 如果读取失败,则初始化一个新的列表                }                String namedelete = nameField.getText();                Iterator it = list.iterator();                boolean flag = true;                while (it.hasNext()){                    Student stu = (Student) it.next();                    if (namedelete.equals(stu.getName())){                        it.remove();                        flag = false;                        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\jdk\code\GUI\src\StudentManagementSystem\students.dat"))) {                            oos.writeObject(list);                            System.out.println("Student list has been written to the file.");                        } catch (IOException ex) {                            ex.printStackTrace();                        }                        JOptionPane.showMessageDialog(DeleteStudentInfo.this,"Delete succeeded!");                    }                }                if (flag){                    JOptionPane.showMessageDialog(DeleteStudentInfo.this,"Delete failed, this person cannot be found!");                }            }        });        JButton jb2 = new JButton("HomePage");        jb2.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new HomePage();                dispose();            }        });        mainPanel.add(titleLabel);        mainPanel.add(nameLabel);        mainPanel.add(nameField);        mainPanel.add(jb1);        mainPanel.add(jb2);        layout.putConstraint(SpringLayout.HORIZONTAL_CENTER, titleLabel, 0, SpringLayout.HORIZONTAL_CENTER, mainPanel);        layout.putConstraint(SpringLayout.NORTH, titleLabel, 10, SpringLayout.NORTH, mainPanel);        layout.putConstraint(SpringLayout.WEST, nameLabel, 90, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, nameLabel, 70, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, nameField, 10, SpringLayout.EAST, nameLabel);        layout.putConstraint(SpringLayout.NORTH, nameField, 70, SpringLayout.NORTH, titleLabel);        layout.putConstraint(SpringLayout.WEST, jb1, 140, SpringLayout.WEST, mainPanel);        layout.putConstraint(SpringLayout.NORTH, jb1, 70, SpringLayout.NORTH, nameLabel);        layout.putConstraint(SpringLayout.WEST, jb2, 40, SpringLayout.EAST, jb1);        layout.putConstraint(SpringLayout.NORTH, jb2, 70, SpringLayout.NORTH, nameLabel);        c1.add(mainPanel);        setVisible(true);    }}

    第七步: 主页功能界面

    废话不多说,上代码(关于文件路径,请君自行修改):

    package StudentManagementSystem;import StudentManagementSystem.Register;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class HomePage extends JFrame {    public HomePage(){        setTitle("StudentManagementSystem");        setBounds(600, 200, 350, 300);        setDefaultCloseOperation(EXIT_ON_CLOSE);        Container c1 = getContentPane();        c1.setLayout(new GridLayout(5, 1)); // 设置为2行1列的GridLayout        JButton jb1 = new JButton("Register");        jb1.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new Register();                dispose();            }        });        JButton jb2 = new JButton("Login");        jb2.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new Login();                dispose();            }        });        JButton jb3 = new JButton("Add student");        jb3.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new AddStudent();                dispose();            }        });        JButton jb4 = new JButton("CheckStudent");        jb4.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new CheckStudent();                dispose();            }        });        JButton jb5 = new JButton("Delete Student Info");        jb5.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                new DeleteStudentInfo();                dispose();            }        });        c1.add(jb1);        c1.add(jb2);        c1.add(jb3);        c1.add(jb4);        c1.add(jb5);        setVisible(true);    }}

    第七步: 运行界面

    废话不多说,上代码(关于文件路径,请君自行修改):

    package StudentManagementSystem;public class Game {    public static void main(String[] args) {        new Login();    }}

    第七步:注意事项

    1. 将上述界面找一个idea逐一复制新建到一个文件夹中
    2. 路径记得自己更换
    3. 要原代码,需要指导弄的可以评论找我哦

上一篇:方舟怎么下载服务器模组?

下一篇:Win10系统初始化,一键重置,电脑焕然一新!