帮我写一个带窗口的java学生信息管理系统
时间: 2023-07-06 15:41:40 浏览: 42
好的,以下是一个简单的带窗口的Java学生信息管理系统:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
public class StudentManagementSystem extends JFrame implements ActionListener {
private JLabel nameLabel;
private JLabel idLabel;
private JLabel majorLabel;
private JTextField nameField;
private JTextField idField;
private JTextField majorField;
private JButton addButton;
private JButton removeButton;
private JButton updateButton;
private JButton searchButton;
private JTextArea infoArea;
// 存储学生信息的列表
private ArrayList<Student> studentList;
public StudentManagementSystem() {
// 初始化学生信息列表
studentList = new ArrayList<>();
// 设置窗口标题和大小
setTitle("学生信息管理系统");
setSize(600, 400);
// 初始化组件
nameLabel = new JLabel("姓名");
idLabel = new JLabel("学号");
majorLabel = new JLabel("专业");
nameField = new JTextField();
idField = new JTextField();
majorField = new JTextField();
addButton = new JButton("添加");
removeButton = new JButton("删除");
updateButton = new JButton("更新");
searchButton = new JButton("查找");
infoArea = new JTextArea();
// 设置组件位置和大小
nameLabel.setBounds(50, 50, 50, 30);
idLabel.setBounds(50, 100, 50, 30);
majorLabel.setBounds(50, 150, 50, 30);
nameField.setBounds(100, 50, 200, 30);
idField.setBounds(100, 100, 200, 30);
majorField.setBounds(100, 150, 200, 30);
addButton.setBounds(50, 200, 80, 30);
removeButton.setBounds(140, 200, 80, 30);
updateButton.setBounds(230, 200, 80, 30);
searchButton.setBounds(320, 200, 80, 30);
infoArea.setBounds(350, 50, 200, 150);
// 添加组件到窗口中
add(nameLabel);
add(idLabel);
add(majorLabel);
add(nameField);
add(idField);
add(majorField);
add(addButton);
add(removeButton);
add(updateButton);
add(searchButton);
add(infoArea);
// 给按钮添加监听器
addButton.addActionListener(this);
removeButton.addActionListener(this);
updateButton.addActionListener(this);
searchButton.addActionListener(this);
// 设置窗口可见性和关闭操作
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
// 点击添加按钮时执行的操作
String name = nameField.getText();
String id = idField.getText();
String major = majorField.getText();
// 创建一个新的学生对象并添加到列表中
Student student = new Student(name, id, major);
studentList.add(student);
// 在信息区域显示添加成功的信息
String info = "添加成功:\n" + student.toString();
infoArea.setText(info);
} else if (e.getSource() == removeButton) {
// 点击删除按钮时执行的操作
String id = idField.getText();
// 遍历学生列表,找到对应学号的学生并删除
for (int i = 0; i < studentList.size(); i++) {
Student student = studentList.get(i);
if (student.getId().equals(id)) {
studentList.remove(i);
// 在信息区域显示删除成功的信息
String info = "删除成功:\n" + student.toString();
infoArea.setText(info);
return;
}
}
// 如果没有找到对应学号的学生,显示错误信息
JOptionPane.showMessageDialog(this, "删除失败:该学号的学生不存在");
} else if (e.getSource() == updateButton) {
// 点击更新按钮时执行的操作
String name = nameField.getText();
String id = idField.getText();
String major = majorField.getText();
// 遍历学生列表,找到对应学号的学生并更新
for (int i = 0; i < studentList.size(); i++) {
Student student = studentList.get(i);
if (student.getId().equals(id)) {
student.setName(name);
student.setMajor(major);
// 在信息区域显示更新成功的信息
String info = "更新成功:\n" + student.toString();
infoArea.setText(info);
return;
}
}
// 如果没有找到对应学号的学生,显示错误信息
JOptionPane.showMessageDialog(this, "更新失败:该学号的学生不存在");
} 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)) {
// 在信息区域显示查找结果的信息
String info = "查找结果:\n" + student.toString();
infoArea.setText(info);
return;
}
}
// 如果没有找到对应学号的学生,显示错误信息
JOptionPane.showMessageDialog(this, "查找失败:该学号的学生不存在");
}
}
public static void main(String[] args) {
new StudentManagementSystem();
}
}
// 学生类
class Student {
private String name;
private String id;
private String major;
public Student(String name, String id, String major) {
this.name = name;
this.id = id;
this.major = major;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
@Override
public String toString() {
return "姓名:" + name + "\n学号:" + id + "\n专业:" + major;
}
}
```
这个学生信息管理系统包含添加、删除、更新和查找四个操作,可以通过界面操作学生信息列表。具体的数据库操作和界面设计需要根据实际需求进行修改和完善。