写一个学生管理系统增删改查的页面用java
由于学生管理系统是一个比较大的项目,包含多个模块和功能,因此在这里只提供一个简单的增删改查页面的代码示例,供参考。
该页面主要包括以下几个部分:
- 学生信息列表,展示所有学生的基本信息,包括姓名、年龄、性别、学号等;
- 新增学生信息的表单,包括各个字段的输入框和提交按钮;
- 修改学生信息的表单,与新增表单类似,但需要在表单上方显示当前要修改的学生信息;
- 删除学生信息的按钮,点击后弹出确认框,确认删除后删除该学生信息。
以下是示例代码:
import java.util.ArrayList;
import java.util.List;
public class Student {
private String name;
private int age;
private String gender;
private String id;
public Student(String name, int age, String gender, String id) {
this.name = name;
this.age = age;
this.gender = gender;
this.id = id;
}
// getter and setter methods
}
public class StudentManager {
private List<Student> students;
public StudentManager() {
students = new ArrayList<>();
}
public void addStudent(Student student) {
students.add(student);
}
public void removeStudent(String id) {
for (Student student : students) {
if (student.getId().equals(id)) {
students.remove(student);
break;
}
}
}
public void updateStudent(String id, Student updatedStudent) {
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getId().equals(id)) {
students.set(i, updatedStudent);
break;
}
}
}
public Student getStudentById(String id) {
for (Student student : students) {
if (student.getId().equals(id)) {
return student;
}
}
return null;
}
public List<Student> getAllStudents() {
return students;
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class StudentManagementSystem extends JFrame implements ActionListener {
private StudentManager manager;
private JButton addButton, updateButton, deleteButton;
private JTextField nameField, ageField, genderField, idField;
private JTable studentTable;
public StudentManagementSystem() {
manager = new StudentManager();
// initialize components
addButton = new JButton("Add");
updateButton = new JButton("Update");
deleteButton = new JButton("Delete");
nameField = new JTextField(10);
ageField = new JTextField(3);
genderField = new JTextField(6);
idField = new JTextField(10);
studentTable = new JTable();
JScrollPane scrollPane = new JScrollPane(studentTable);
// set layout
JPanel inputPanel = new JPanel(new GridLayout(2, 4));
inputPanel.add(new JLabel("Name:"));
inputPanel.add(nameField);
inputPanel.add(new JLabel("Age:"));
inputPanel.add(ageField);
inputPanel.add(new JLabel("Gender:"));
inputPanel.add(genderField);
inputPanel.add(new JLabel("ID:"));
inputPanel.add(idField);
JPanel buttonPanel = new JPanel(new FlowLayout());
buttonPanel.add(addButton);
buttonPanel.add(updateButton);
buttonPanel.add(deleteButton);
setLayout(new BorderLayout());
add(inputPanel, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
// set listeners
addButton.addActionListener(this);
updateButton.addActionListener(this);
deleteButton.addActionListener(this);
// set window properties
setLocationRelativeTo(null);
setSize(500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("Add")) {
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderField.getText();
String id = idField.getText();
Student newStudent = new Student(name, age, gender, id);
manager.addStudent(newStudent);
// refresh table
refreshTable();
} else if (command.equals("Update")) {
String id = idField.getText();
Student currentStudent = manager.getStudentById(id);
if (currentStudent == null) {
JOptionPane.showMessageDialog(this, "No student found with ID " + id);
return;
}
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderField.getText();
Student updatedStudent = new Student(name, age, gender, id);
manager.updateStudent(id, updatedStudent);
// refresh table
refreshTable();
} else if (command.equals("Delete")) {
String id = idField.getText();
int confirm = JOptionPane.showConfirmDialog(this, "Are you sure to delete student with ID " + id + "?");
if (confirm == JOptionPane.YES_OPTION) {
manager.removeStudent(id);
// refresh table
refreshTable();
}
}
}
private void refreshTable() {
List<Student> students = manager.getAllStudents();
Object[][] data = new Object[students.size()][4];
for (int i = 0; i < students.size(); i++) {
data[i][0] = students.get(i).getName();
data[i][1] = students.get(i).getAge();
data[i][2] = students.get(i).getGender();
data[i][3] = students.get(i).getId();
}
String[] columnNames = {"Name", "Age", "Gender", "ID"};
studentTable.setModel(new DefaultTableModel(data, columnNames));
}
public static void main(String[] args) {
new StudentManagementSystem();
}
}
以上代码使用了 Java Swing 框架实现了一个简单的学生管理系统。其中,Student 类表示学生对象,StudentManager 类实现了学生信息的增删改查操作,StudentManagementSystem 类实现了界面和事件处理。
在 StudentManagementSystem 类的构造方法中,我们首先创建了一个 StudentManager 对象,并初始化了各个界面组件。为了简化示例,我们使用了一个 JTable 表格来展示所有学生的信息,当用户进行增删改操作后,我们需要调用 refreshTable() 方法来刷新表格。在事件处理方法中,我们根据按钮的命令执行相应的操作,最后调用 refreshTable() 方法刷新表格。
原文地址: https://www.cveoy.top/t/topic/nF6 著作权归作者所有。请勿转载和采集!