用java写一个学生管理系统要求可视化窗口
时间: 2023-12-15 14:04:17 浏览: 33
好的,我可以为您提供一个基本的Java学生管理系统的框架,它包括可视化窗口和基本的学生信息管理功能。您可以根据自己的需求进行修改和扩展。以下是代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class StudentManagementSystem extends JFrame implements ActionListener {
private JLabel nameLabel;
private JLabel ageLabel;
private JLabel genderLabel;
private JLabel idLabel;
private JTextField nameField;
private JTextField ageField;
private JTextField genderField;
private JTextField idField;
private JButton addButton;
private JButton deleteButton;
private JButton updateButton;
private JButton searchButton;
private JTable studentTable;
private JScrollPane scrollPane;
private ArrayList<Student> studentList;
public StudentManagementSystem() {
super("学生管理系统");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 初始化组件
nameLabel = new JLabel("姓名:");
ageLabel = new JLabel("年龄:");
genderLabel = new JLabel("性别:");
idLabel = new JLabel("学号:");
nameField = new JTextField();
ageField = new JTextField();
genderField = new JTextField();
idField = new JTextField();
addButton = new JButton("添加");
deleteButton = new JButton("删除");
updateButton = new JButton("修改");
searchButton = new JButton("查找");
studentTable = new JTable();
scrollPane = new JScrollPane(studentTable);
// 添加组件到窗口
JPanel inputPanel = new JPanel(new GridLayout(4, 2));
inputPanel.add(nameLabel);
inputPanel.add(nameField);
inputPanel.add(ageLabel);
inputPanel.add(ageField);
inputPanel.add(genderLabel);
inputPanel.add(genderField);
inputPanel.add(idLabel);
inputPanel.add(idField);
JPanel buttonPanel = new JPanel(new GridLayout(1, 4));
buttonPanel.add(addButton);
buttonPanel.add(deleteButton);
buttonPanel.add(updateButton);
buttonPanel.add(searchButton);
JPanel tablePanel = new JPanel(new BorderLayout());
tablePanel.add(scrollPane, BorderLayout.CENTER);
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(inputPanel, BorderLayout.NORTH);
mainPanel.add(buttonPanel, BorderLayout.CENTER);
mainPanel.add(tablePanel, BorderLayout.SOUTH);
add(mainPanel);
// 添加事件监听器
addButton.addActionListener(this);
deleteButton.addActionListener(this);
updateButton.addActionListener(this);
searchButton.addActionListener(this);
// 初始化学生列表
studentList = new ArrayList<Student>();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
// 添加学生
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderField.getText();
String id = idField.getText();
Student student = new Student(name, age, gender, id);
studentList.add(student);
updateTable();
} else if (e.getSource() == deleteButton) {
// 删除学生
int row = studentTable.getSelectedRow();
if (row >= 0) {
studentList.remove(row);
updateTable();
}
} else if (e.getSource() == updateButton) {
// 修改学生
int row = studentTable.getSelectedRow();
if (row >= 0) {
String name = nameField.getText();
int age = Integer.parseInt(ageField.getText());
String gender = genderField.getText();
String id = idField.getText();
Student student = studentList.get(row);
student.setName(name);
student.setAge(age);
student.setGender(gender);
student.setId(id);
updateTable();
}
} else if (e.getSource() == searchButton) {
// 查找学生
String id = idField.getText();
for (int i = 0; i < studentList.size(); i++) {
Student student = studentList.get(i);
if (student.getId().equals(id)) {
studentTable.setRowSelectionInterval(i, i);
break;
}
}
}
}
private void updateTable() {
Object[][] data = new Object[studentList.size()][4];
for (int i = 0; i < studentList.size(); i++) {
Student student = studentList.get(i);
data[i][0] = student.getName();
data[i][1] = student.getAge();
data[i][2] = student.getGender();
data[i][3] = student.getId();
}
Object[] columnNames = {"姓名", "年龄", "性别", "学号"};
studentTable.setModel(new DefaultTableModel(data, columnNames));
}
public static void main(String[] args) {
StudentManagementSystem system = new StudentManagementSystem();
system.setVisible(true);
}
}
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;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
```
这个学生管理系统包含了添加、删除、修改和查找学生的功能,并且使用了可视化窗口和表格来展示学生信息。您可以根据自己的需求进行修改和扩展。