使用Java用面向对象编程的方法为设计的学生管理系统做一个GUI界面设计
时间: 2024-02-20 12:01:32 浏览: 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 StudentManagementSystemGUI extends JFrame {
private JLabel nameLabel, idLabel, genderLabel, gradeLabel;
private JTextField nameField, idField, genderField, gradeField;
private JButton addButton, deleteButton, updateButton, searchButton;
private ArrayList<Student> students;
public StudentManagementSystemGUI() {
super("学生管理系统");
nameLabel = new JLabel("姓名:");
idLabel = new JLabel("学号:");
genderLabel = new JLabel("性别:");
gradeLabel = new JLabel("年级:");
nameField = new JTextField(10);
idField = new JTextField(10);
genderField = new JTextField(10);
gradeField = new JTextField(10);
addButton = new JButton("添加");
deleteButton = new JButton("删除");
updateButton = new JButton("修改");
searchButton = new JButton("查询");
// 添加事件监听器
addButton.addActionListener(new AddButtonListener());
deleteButton.addActionListener(new DeleteButtonListener());
updateButton.addActionListener(new UpdateButtonListener());
searchButton.addActionListener(new SearchButtonListener());
// 设置布局管理器
setLayout(new GridLayout(5, 2));
// 添加组件
add(nameLabel);
add(nameField);
add(idLabel);
add(idField);
add(genderLabel);
add(genderField);
add(gradeLabel);
add(gradeField);
add(addButton);
add(deleteButton);
add(updateButton);
add(searchButton);
students = new ArrayList<>();
// 设置窗口属性
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
private void clearFields() {
nameField.setText("");
idField.setText("");
genderField.setText("");
gradeField.setText("");
}
private class AddButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
String id = idField.getText();
String gender = genderField.getText();
String grade = gradeField.getText();
Student student = new Student(name, id, gender, grade);
students.add(student);
JOptionPane.showMessageDialog(StudentManagementSystemGUI.this, "添加成功!", "提示",
JOptionPane.INFORMATION_MESSAGE);
clearFields();
}
}
private class DeleteButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String id = idField.getText();
boolean found = false;
for (Student student : students) {
if (student.getId().equals(id)) {
students.remove(student);
found = true;
break;
}
}
if (found) {
JOptionPane.showMessageDialog(StudentManagementSystemGUI.this, "删除成功!", "提示",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(StudentManagementSystemGUI.this, "未找到该学生!", "提示",
JOptionPane.ERROR_MESSAGE);
}
clearFields();
}
}
private class UpdateButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String id = idField.getText();
boolean found = false;
for (Student student : students) {
if (student.getId().equals(id)) {
String name = nameField.getText();
String gender = genderField.getText();
String grade = gradeField.getText();
student.setName(name);
student.setGender(gender);
student.setGrade(grade);
found = true;
break;
}
}
if (found) {
JOptionPane.showMessageDialog(StudentManagementSystemGUI.this, "修改成功!", "提示",
JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(StudentManagementSystemGUI.this, "未找到该学生!", "提示",
JOptionPane.ERROR_MESSAGE);
}
clearFields();
}
}
private class SearchButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String id = idField.getText();
boolean found = false;
for (Student student : students) {
if (student.getId().equals(id)) {
nameField.setText(student.getName());
genderField.setText(student.getGender());
gradeField.setText(student.getGrade());
found = true;
break;
}
}
if (!found) {
JOptionPane.showMessageDialog(StudentManagementSystemGUI.this, "未找到该学生!", "提示",
JOptionPane.ERROR_MESSAGE);
}
}
}
public static void main(String[] args) {
new StudentManagementSystemGUI();
}
}
```
这个示例代码中,使用了JLabel、JTextField、JButton等Swing组件,使用了GridLayout布局管理器,创建了一个简单的面向对象的添加、删除、修改、查询学生信息的GUI界面。除此之外,还定义了一个Student类来表示学生,使得程序结构更加清晰和易于扩展。