写一个javaGUI学生信息管理系统
时间: 2023-12-11 19:50:29 浏览: 33
好的,我可以帮你搭建一个简单的Java GUI学生信息管理系统,以下是一个示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
public class StudentInfoSystem extends JFrame implements ActionListener {
private JLabel nameLabel, idLabel, genderLabel, ageLabel, majorLabel;
private JTextField nameText, idText, genderText, ageText, majorText;
private JButton addButton, deleteButton, searchButton, updateButton, clearButton;
private JTable dataTable;
private JScrollPane scrollPane;
private Object[] columnNames = {"Name", "ID", "Gender", "Age", "Major"};
private Object[][] rowData = {};
private ArrayList<Student> studentList = new ArrayList<>();
private int selectedRowIndex = -1;
public StudentInfoSystem() {
setTitle("Student Information System");
setSize(600, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new GridLayout(5, 2));
nameLabel = new JLabel("Name:");
nameText = new JTextField(10);
idLabel = new JLabel("ID:");
idText = new JTextField(10);
genderLabel = new JLabel("Gender:");
genderText = new JTextField(10);
ageLabel = new JLabel("Age:");
ageText = new JTextField(10);
majorLabel = new JLabel("Major:");
majorText = new JTextField(10);
inputPanel.add(nameLabel);
inputPanel.add(nameText);
inputPanel.add(idLabel);
inputPanel.add(idText);
inputPanel.add(genderLabel);
inputPanel.add(genderText);
inputPanel.add(ageLabel);
inputPanel.add(ageText);
inputPanel.add(majorLabel);
inputPanel.add(majorText);
JPanel buttonPanel = new JPanel();
addButton = new JButton("Add");
addButton.addActionListener(this);
deleteButton = new JButton("Delete");
deleteButton.addActionListener(this);
searchButton = new JButton("Search");
searchButton.addActionListener(this);
updateButton = new JButton("Update");
updateButton.addActionListener(this);
clearButton = new JButton("Clear");
clearButton.addActionListener(this);
buttonPanel.add(addButton);
buttonPanel.add(deleteButton);
buttonPanel.add(searchButton);
buttonPanel.add(updateButton);
buttonPanel.add(clearButton);
JPanel tablePanel = new JPanel();
dataTable = new JTable(rowData, columnNames);
scrollPane = new JScrollPane(dataTable);
tablePanel.add(scrollPane);
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(inputPanel, BorderLayout.NORTH);
contentPane.add(buttonPanel, BorderLayout.CENTER);
contentPane.add(tablePanel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
StudentInfoSystem studentInfoSystem = new StudentInfoSystem();
studentInfoSystem.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
String name = nameText.getText();
String id = idText.getText();
String gender = genderText.getText();
int age = Integer.parseInt(ageText.getText());
String major = majorText.getText();
Student student = new Student(name, id, gender, age, major);
studentList.add(student);
Object[] newRow = {name, id, gender, age, major};
((javax.swing.table.DefaultTableModel) dataTable.getModel()).addRow(newRow);
clearInputs();
} else if (e.getSource() == deleteButton) {
if (selectedRowIndex != -1) {
studentList.remove(selectedRowIndex);
((javax.swing.table.DefaultTableModel) dataTable.getModel()).removeRow(selectedRowIndex);
selectedRowIndex = -1;
clearInputs();
}
} else if (e.getSource() == searchButton) {
String searchText = JOptionPane.showInputDialog(this, "Please input the ID:");
for (int i = 0; i < studentList.size(); i++) {
Student student = studentList.get(i);
if (student.getId().equals(searchText)) {
dataTable.setRowSelectionInterval(i, i);
selectedRowIndex = i;
nameText.setText(student.getName());
idText.setText(student.getId());
genderText.setText(student.getGender());
ageText.setText(String.valueOf(student.getAge()));
majorText.setText(student.getMajor());
break;
}
}
} else if (e.getSource() == updateButton) {
if (selectedRowIndex != -1) {
String name = nameText.getText();
String id = idText.getText();
String gender = genderText.getText();
int age = Integer.parseInt(ageText.getText());
String major = majorText.getText();
Student student = new Student(name, id, gender, age, major);
studentList.set(selectedRowIndex, student);
Object[] newRow = {name, id, gender, age, major};
((javax.swing.table.DefaultTableModel) dataTable.getModel()).setValueAt(name, selectedRowIndex, 0);
((javax.swing.table.DefaultTableModel) dataTable.getModel()).setValueAt(id, selectedRowIndex, 1);
((javax.swing.table.DefaultTableModel) dataTable.getModel()).setValueAt(gender, selectedRowIndex, 2);
((javax.swing.table.DefaultTableModel) dataTable.getModel()).setValueAt(age, selectedRowIndex, 3);
((javax.swing.table.DefaultTableModel) dataTable.getModel()).setValueAt(major, selectedRowIndex, 4);
clearInputs();
}
} else if (e.getSource() == clearButton) {
clearInputs();
}
}
private void clearInputs() {
nameText.setText("");
idText.setText("");
genderText.setText("");
ageText.setText("");
majorText.setText("");
dataTable.clearSelection();
selectedRowIndex = -1;
}
}
class Student {
private String name;
private String id;
private String gender;
private int age;
private String major;
public Student(String name, String id, String gender, int age, String major) {
this.name = name;
this.id = id;
this.gender = gender;
this.age = age;
this.major = major;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
public String getGender() {
return gender;
}
public int getAge() {
return age;
}
public String getMajor() {
return major;
}
}
```
以上是一个简单的Java GUI学生信息管理系统,其中包括添加、删除、搜索、更新和清空等功能。在这个示例中,我们使用了JFrame、JPanel、JLabel、JTextField、JButton、JTable、JScrollPane等组件来搭建界面,并使用了ArrayList和自定义的Student类来存储和管理学生信息。这个示例代码可能存在一些不足之处,你可以根据自己的需求进行修改和完善。