写一个javaGUI学生信息管理系统
时间: 2023-12-11 20:51:50 浏览: 29
好的,我可以提供一个简单的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, classLabel;
private JTextField nameText, idText, genderText, classText;
private JButton addButton, deleteButton, updateButton, searchButton;
private JTextArea infoArea;
private ArrayList<Student> studentList;
public StudentInfoSystem() {
initGUI();
initListeners();
studentList = new ArrayList<>();
}
private void initGUI() {
// 初始化窗口
setTitle("学生信息管理系统");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// 初始化控件
nameLabel = new JLabel("姓名:");
nameText = new JTextField();
idLabel = new JLabel("学号:");
idText = new JTextField();
genderLabel = new JLabel("性别:");
genderText = new JTextField();
classLabel = new JLabel("班级:");
classText = new JTextField();
addButton = new JButton("添加");
deleteButton = new JButton("删除");
updateButton = new JButton("修改");
searchButton = new JButton("查询");
infoArea = new JTextArea();
// 布局控件
JPanel inputPanel = new JPanel(new GridLayout(4, 2));
inputPanel.add(nameLabel);
inputPanel.add(nameText);
inputPanel.add(idLabel);
inputPanel.add(idText);
inputPanel.add(genderLabel);
inputPanel.add(genderText);
inputPanel.add(classLabel);
inputPanel.add(classText);
JPanel buttonPanel = new JPanel(new GridLayout(1, 4));
buttonPanel.add(addButton);
buttonPanel.add(deleteButton);
buttonPanel.add(updateButton);
buttonPanel.add(searchButton);
JScrollPane scrollPane = new JScrollPane(infoArea);
setLayout(new BorderLayout());
add(inputPanel, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.CENTER);
add(scrollPane, BorderLayout.SOUTH);
}
private void initListeners() {
addButton.addActionListener(this);
deleteButton.addActionListener(this);
updateButton.addActionListener(this);
searchButton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
addStudent();
} else if (e.getSource() == deleteButton) {
deleteStudent();
} else if (e.getSource() == updateButton) {
updateStudent();
} else if (e.getSource() == searchButton) {
searchStudent();
}
}
private void addStudent() {
String name = nameText.getText().trim();
String id = idText.getText().trim();
String gender = genderText.getText().trim();
String clazz = classText.getText().trim();
if (name.isEmpty() || id.isEmpty() || gender.isEmpty() || clazz.isEmpty()) {
JOptionPane.showMessageDialog(this, "请填写完整信息");
return;
}
Student student = new Student(name, id, gender, clazz);
studentList.add(student);
infoArea.setText(getStudentInfo());
clearInput();
}
private void deleteStudent() {
String id = idText.getText().trim();
if (id.isEmpty()) {
JOptionPane.showMessageDialog(this, "请输入学号");
return;
}
boolean isDeleted = false;
for (int i = 0; i < studentList.size(); i++) {
if (studentList.get(i).getId().equals(id)) {
studentList.remove(i);
isDeleted = true;
break;
}
}
if (isDeleted) {
infoArea.setText(getStudentInfo());
JOptionPane.showMessageDialog(this, "删除成功");
clearInput();
} else {
JOptionPane.showMessageDialog(this, "该学号不存在");
}
}
private void updateStudent() {
String id = idText.getText().trim();
if (id.isEmpty()) {
JOptionPane.showMessageDialog(this, "请输入学号");
return;
}
boolean isUpdated = false;
for (int i = 0; i < studentList.size(); i++) {
if (studentList.get(i).getId().equals(id)) {
Student student = studentList.get(i);
student.setName(nameText.getText().trim());
student.setGender(genderText.getText().trim());
student.setClazz(classText.getText().trim());
isUpdated = true;
break;
}
}
if (isUpdated) {
infoArea.setText(getStudentInfo());
JOptionPane.showMessageDialog(this, "修改成功");
clearInput();
} else {
JOptionPane.showMessageDialog(this, "该学号不存在");
}
}
private void searchStudent() {
String id = idText.getText().trim();
if (id.isEmpty()) {
JOptionPane.showMessageDialog(this, "请输入学号");
return;
}
boolean isSearched = false;
for (int i = 0; i < studentList.size(); i++) {
if (studentList.get(i).getId().equals(id)) {
Student student = studentList.get(i);
nameText.setText(student.getName());
genderText.setText(student.getGender());
classText.setText(student.getClazz());
isSearched = true;
break;
}
}
if (!isSearched) {
JOptionPane.showMessageDialog(this, "该学号不存在");
}
}
private String getStudentInfo() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < studentList.size(); i++) {
sb.append(studentList.get(i).toString()).append("\n");
}
return sb.toString();
}
private void clearInput() {
nameText.setText("");
idText.setText("");
genderText.setText("");
classText.setText("");
}
public static void main(String[] args) {
new StudentInfoSystem().setVisible(true);
}
}
class Student {
private String name;
private String id;
private String gender;
private String clazz;
public Student(String name, String id, String gender, String clazz) {
this.name = name;
this.id = id;
this.gender = gender;
this.clazz = clazz;
}
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 getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getClazz() {
return clazz;
}
public void setClazz(String clazz) {
this.clazz = clazz;
}
@Override
public String toString() {
return "姓名:" + name + ", 学号:" + id + ", 性别:" + gender + ", 班级:" + clazz;
}
}
```
这个程序可以实现添加、删除、修改和查询学生信息的功能,学生信息使用一个类来封装,然后使用一个ArrayList来保存学生信息。界面使用Java Swing来实现,包括文本框、标签、按钮和文本区域等控件。在添加、删除、修改和查询学生信息时,需要对输入的信息进行校验,如果有误则给出提示。最后,通过一个StringBuilder来拼接学生信息并在文本区域中显示出来。
这只是一个简单的示例程序,您可以根据实际需求进行修改和扩展。