帮我写一个带窗口的java学生管理系统
时间: 2023-07-06 08:38:36 浏览: 40
好的,下面我给你提供一个简单的带窗口的Java学生管理系统的代码,帮助你开始:
```java
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class StudentManagementSystem extends JFrame {
private JPanel contentPane;
private JTextField textFieldName;
private JTextField textFieldID;
private JTextField textFieldMajor;
private JTable table;
private DefaultTableModel model;
private List<Student> students = new ArrayList<>();
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
StudentManagementSystem frame = new StudentManagementSystem();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public StudentManagementSystem() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(null);
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblName = new JLabel("姓名:");
lblName.setBounds(10, 10, 60, 15);
contentPane.add(lblName);
JLabel lblID = new JLabel("学号:");
lblID.setBounds(10, 35, 60, 15);
contentPane.add(lblID);
JLabel lblMajor = new JLabel("专业:");
lblMajor.setBounds(10, 60, 60, 15);
contentPane.add(lblMajor);
textFieldName = new JTextField();
textFieldName.setBounds(70, 10, 100, 21);
contentPane.add(textFieldName);
textFieldName.setColumns(10);
textFieldID = new JTextField();
textFieldID.setBounds(70, 35, 100, 21);
contentPane.add(textFieldID);
textFieldID.setColumns(10);
textFieldMajor = new JTextField();
textFieldMajor.setBounds(70, 60, 100, 21);
contentPane.add(textFieldMajor);
textFieldMajor.setColumns(10);
JButton btnAdd = new JButton("添加");
btnAdd.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = textFieldName.getText();
String id = textFieldID.getText();
String major = textFieldMajor.getText();
if (name.isEmpty() || id.isEmpty() || major.isEmpty()) {
JOptionPane.showMessageDialog(StudentManagementSystem.this, "请填写完整信息", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
Student student = new Student(name, id, major);
students.add(student);
model.addRow(new Object[]{student.getName(), student.getId(), student.getMajor()});
textFieldName.setText("");
textFieldID.setText("");
textFieldMajor.setText("");
}
});
btnAdd.setBounds(205, 10, 80, 25);
contentPane.add(btnAdd);
JButton btnDelete = new JButton("删除");
btnDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int row = table.getSelectedRow();
if (row == -1) {
JOptionPane.showMessageDialog(StudentManagementSystem.this, "请选择要删除的学生", "错误", JOptionPane.ERROR_MESSAGE);
return;
}
students.remove(row);
model.removeRow(row);
}
});
btnDelete.setBounds(205, 35, 80, 25);
contentPane.add(btnDelete);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 85, 414, 167);
contentPane.add(scrollPane);
table = new JTable();
model = new DefaultTableModel(new Object[][]{}, new String[]{"姓名", "学号", "专业"});
table.setModel(model);
scrollPane.setViewportView(table);
}
private 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 String getId() {
return id;
}
public String getMajor() {
return major;
}
}
}
```
这个学生管理系统包括添加学生、删除学生、以表格的形式显示所有学生等功能。你可以根据需要对代码进行修改和扩展。