用java写一个学生对象信息管理的面板
时间: 2023-07-19 22:32:11 浏览: 60
好的,我可以为您提供一个简单的Java学生信息管理面板的代码,您可以根据需要进行修改和完善。以下是示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class StudentPanel extends JFrame implements ActionListener {
private JLabel nameLabel, idLabel, genderLabel, majorLabel;
private JTextField nameField, idField, majorField;
private JRadioButton maleRadioButton, femaleRadioButton;
private ButtonGroup genderGroup;
private JButton addButton, deleteButton, updateButton, clearButton;
private JList<Student> studentList;
private DefaultListModel<Student> listModel;
private ArrayList<Student> studentArrayList;
public StudentPanel() {
setTitle("学生信息管理系统");
setSize(500, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
nameLabel = new JLabel("姓名");
idLabel = new JLabel("学号");
genderLabel = new JLabel("性别");
majorLabel = new JLabel("专业");
nameField = new JTextField(10);
idField = new JTextField(10);
majorField = new JTextField(10);
maleRadioButton = new JRadioButton("男");
femaleRadioButton = new JRadioButton("女");
genderGroup = new ButtonGroup();
genderGroup.add(maleRadioButton);
genderGroup.add(femaleRadioButton);
addButton = new JButton("添加");
deleteButton = new JButton("删除");
updateButton = new JButton("更新");
clearButton = new JButton("清空");
studentArrayList = new ArrayList<>();
listModel = new DefaultListModel<>();
studentList = new JList<>(listModel);
studentList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JPanel inputPanel = new JPanel(new GridLayout(4, 2));
inputPanel.add(nameLabel);
inputPanel.add(nameField);
inputPanel.add(idLabel);
inputPanel.add(idField);
inputPanel.add(genderLabel);
inputPanel.add(maleRadioButton);
inputPanel.add(new JLabel(""));
inputPanel.add(femaleRadioButton);
inputPanel.add(majorLabel);
inputPanel.add(majorField);
JPanel buttonPanel = new JPanel(new GridLayout(1, 4));
buttonPanel.add(addButton);
buttonPanel.add(deleteButton);
buttonPanel.add(updateButton);
buttonPanel.add(clearButton);
JPanel listPanel = new JPanel();
listPanel.add(new JScrollPane(studentList));
Container container = getContentPane();
container.setLayout(new BorderLayout());
container.add(inputPanel, BorderLayout.NORTH);
container.add(buttonPanel, BorderLayout.CENTER);
container.add(listPanel, BorderLayout.SOUTH);
addButton.addActionListener(this);
deleteButton.addActionListener(this);
updateButton.addActionListener(this);
clearButton.addActionListener(this);
studentList.addListSelectionListener(e -> {
if (studentList.getSelectedIndex() != -1) {
Student student = studentList.getSelectedValue();
nameField.setText(student.getName());
idField.setText(student.getId());
majorField.setText(student.getMajor());
if (student.getGender().equals("男")) {
maleRadioButton.setSelected(true);
} else {
femaleRadioButton.setSelected(true);
}
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
String name = nameField.getText().trim();
String id = idField.getText().trim();
String gender = maleRadioButton.isSelected() ? "男" : "女";
String major = majorField.getText().trim();
Student student = new Student(name, id, gender, major);
studentArrayList.add(student);
listModel.addElement(student);
} else if (e.getSource() == deleteButton) {
int index = studentList.getSelectedIndex();
if (index != -1) {
Student student = listModel.getElementAt(index);
studentArrayList.remove(student);
listModel.remove(index);
}
} else if (e.getSource() == updateButton) {
int index = studentList.getSelectedIndex();
if (index != -1) {
Student student = listModel.getElementAt(index);
student.setName(nameField.getText().trim());
student.setId(idField.getText().trim());
student.setGender(maleRadioButton.isSelected() ? "男" : "女");
student.setMajor(majorField.getText().trim());
listModel.setElementAt(student, index);
}
} else if (e.getSource() == clearButton) {
nameField.setText("");
idField.setText("");
maleRadioButton.setSelected(true);
majorField.setText("");
studentList.clearSelection();
}
}
private static class Student {
private String name;
private String id;
private String gender;
private String major;
public Student(String name, String id, String gender, String major) {
this.name = name;
this.id = id;
this.gender = gender;
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 getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
@Override
public String toString() {
return name + " " + id;
}
}
public static void main(String[] args) {
new StudentPanel().setVisible(true);
}
}
```
该示例代码实现了一个简单的学生信息管理系统,包括添加、删除、更新和清空功能。该系统使用了Java Swing界面库来创建用户界面。
在该示例代码中,我们首先创建了一个学生类`Student`,包含姓名、学号、性别和专业四个属性,并且提供了相应的getter和setter方法。
然后,我们创建了一个JFrame窗口,分别添加了输入框、单选按钮、按钮和列表框等组件来实现用户界面。在添加、删除、更新和清空功能的实现中,我们使用了ArrayList和DefaultListModel两个类来存储和管理学生对象。
希望这个示例代码对您有帮助!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)