写一个学生信息管理系统 1.软件界面美观、功能完善软件,导航清晰,操作方便,使用菜单栏、工具栏、布局管理器、按钮、表格等多种Java图形界面组件。
时间: 2023-07-10 13:15:01 浏览: 54
好的,以下是一个简单的学生信息管理系统的Java代码示例,其中包含了对学生信息的添加、删除、修改和查询等功能,并且使用了Java Swing来构建用户界面:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class StudentInfoApp extends JFrame {
private JTable table;
private DefaultTableModel model;
private JTextField nameField;
private JTextField idField;
private JTextField ageField;
private JTextField majorField;
private JTextField searchField;
private ArrayList<Student> students;
public StudentInfoApp() {
setTitle("学生信息管理系统");
setSize(600, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
students = new ArrayList<Student>();
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenuItem exitMenuItem = new JMenuItem("退出");
exitMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
fileMenu.add(exitMenuItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
// 创建工具栏
JToolBar toolBar = new JToolBar();
JButton addButton = new JButton(new ImageIcon("add.png"));
addButton.setToolTipText("添加学生");
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addStudent();
}
});
JButton deleteButton = new JButton(new ImageIcon("delete.png"));
deleteButton.setToolTipText("删除学生");
deleteButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
deleteStudent();
}
});
JButton editButton = new JButton(new ImageIcon("edit.png"));
editButton.setToolTipText("修改学生信息");
editButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
editStudent();
}
});
toolBar.add(addButton);
toolBar.add(deleteButton);
toolBar.add(editButton);
add(toolBar, BorderLayout.NORTH);
// 创建表格
model = new DefaultTableModel();
model.addColumn("姓名");
model.addColumn("学号");
model.addColumn("年龄");
model.addColumn("专业");
table = new JTable(model);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setAutoCreateRowSorter(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane, BorderLayout.CENTER);
// 创建底部面板
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new GridLayout(1, 2));
JPanel searchPanel = new JPanel();
JLabel searchLabel = new JLabel("搜索:");
searchField = new JTextField(10);
searchPanel.add(searchLabel);
searchPanel.add(searchField);
JButton searchButton = new JButton("搜索");
searchButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
searchStudent();
}
});
searchPanel.add(searchButton);
bottomPanel.add(searchPanel);
JPanel addPanel = new JPanel();
addPanel.setLayout(new GridLayout(4, 2));
JLabel nameLabel = new JLabel("姓名:");
nameField = new JTextField(10);
JLabel idLabel = new JLabel("学号:");
idField = new JTextField(10);
JLabel ageLabel = new JLabel("年龄:");
ageField = new JTextField(10);
JLabel majorLabel = new JLabel("专业:");
majorField = new JTextField(10);
addPanel.add(nameLabel);
addPanel.add(nameField);
addPanel.add(idLabel);
addPanel.add(idField);
addPanel.add(ageLabel);
addPanel.add(ageField);
addPanel.add(majorLabel);
addPanel.add(majorField);
bottomPanel.add(addPanel);
add(bottomPanel, BorderLayout.SOUTH);
setVisible(true);
}
// 添加学生信息
private void addStudent() {
String name = nameField.getText();
String id = idField.getText();
int age = Integer.parseInt(ageField.getText());
String major = majorField.getText();
Student student = new Student(name, id, age, major);
students.add(student);
model.addRow(new Object[] { name, id, age, major });
clearInputFields();
}
// 删除学生信息
private void deleteStudent() {
int row = table.getSelectedRow();
if (row != -1) {
String id = (String) model.getValueAt(row, 1);
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getId().equals(id)) {
students.remove(i);
break;
}
}
model.removeRow(row);
}
}
// 修改学生信息
private void editStudent() {
int row = table.getSelectedRow();
if (row != -1) {
String id = (String) model.getValueAt(row, 1);
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getId().equals(id)) {
Student student = students.get(i);
student.setName(nameField.getText());
student.setAge(Integer.parseInt(ageField.getText()));
student.setMajor(majorField.getText());
model.setValueAt(student.getName(), row, 0);
model.setValueAt(student.getAge(), row, 2);
model.setValueAt(student.getMajor(), row, 3);
break;
}
}
clearInputFields();
}
}
// 搜索学生信息
private void searchStudent() {
String keyword = searchField.getText();
if (!keyword.isEmpty()) {
model.setRowCount(0);
for (int i = 0; i < students.size(); i++) {
Student student = students.get(i);
if (student.getName().contains(keyword) || student.getId().contains(keyword)) {
model.addRow(new Object[] { student.getName(), student.getId(), student.getAge(), student.getMajor() });
}
}
} else {
refreshTable();
}
}
// 清空输入框
private void clearInputFields() {
nameField.setText("");
idField.setText("");
ageField.setText("");
majorField.setText("");
}
// 刷新表格
private void refreshTable() {
model.setRowCount(0);
for (int i = 0; i < students.size(); i++) {
Student student = students.get(i);
model.addRow(new Object[] { student.getName(), student.getId(), student.getAge(), student.getMajor() });
}
}
public static void main(String[] args) {
StudentInfoApp app = new StudentInfoApp();
}
}
```
该代码示例创建了一个名为“StudentInfoApp”的Java Swing窗口,其中包含了一个表格,用于显示学生信息,并提供了添加、删除、修改和查询等功能。同时,该代码示例还使用了菜单栏和工具栏来提高用户的使用体验。
希望这个示例代码可以为您提供一些参考和帮助,让您实现一个美观、功能完善的学生信息管理系统。