简单学生管理系统,与mysql数据库进行交互,实现了基本的查询、添加、更新和删除功能。项目展示,由于篇幅,简单展示两张
下面是项目结构
代码示例
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.List;
/**
* 管理系统的图形界面类
*/
public class StudentManagementUI extends JFrame {
private StudentManagementSystem system;
private DefaultListModel<Student> studentListModel;
private JList<Student> studentList;
private JButton addButton;
private JButton updateButton;
private JButton deleteButton;
public StudentManagementUI() {
system = new StudentManagementSystem();
studentListModel = new DefaultListModel<>();
studentList = new JList<>(studentListModel);
addButton = new JButton("添加");
updateButton = new JButton("更新");
deleteButton = new JButton("删除");
// 添加窗口监听器
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// 在窗口关闭时执行相应操作,例如关闭数据库连接
system.closeConnection();
}
});
}
public void createAndShowGUI() {
setTitle("学生管理系统");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
setPreferredSize(new Dimension(500, 500));
initComponents();
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private void initComponents() {
// 上方查询面板
JPanel searchPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
JLabel nameLabel = new JLabel("姓名:");
JTextField nameField = new JTextField(30);
JButton searchButton = new JButton("查询");
searchPanel.add(nameLabel);
searchPanel.add(nameField);
searchPanel.add(searchButton);
// 中间学生列表面板
JPanel listPanel = new JPanel(new BorderLayout());
listPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
studentList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scrollPane = new JScrollPane(studentList);
listPanel.add(scrollPane, BorderLayout.CENTER);
// 下方按钮面板
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
buttonPanel.setBorder(new EmptyBorder(10, 10, 10, 10));
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
AddStudentDialog dialog = new AddStudentDialog(StudentManagementUI.this);
dialog.setVisible(true);
if (dialog.isConfirmed()) {
Student student = dialog.getStudent();
system.addStudent(student);
refreshStudentList();
}
}
});
updateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Student selectedStudent = studentList.getSelectedValue();
if (selectedStudent != null) {
UpdateStudentDialog dialog = new UpdateStudentDialog(StudentManagementUI.this, selectedStudent);
dialog.setVisible(true);
if (dialog.isConfirmed()) {
Student updatedStudent = dialog.getStudent();
system.updateStudent(updatedStudent);
refreshStudentList();
}
} else {
JOptionPane.showMessageDialog(StudentManagementUI.this, "请选择一个学生", "提示", JOptionPane.WARNING_MESSAGE);
}
}
});
deleteButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Student selectedStudent = studentList.getSelectedValue();
if (selectedStudent != null) {
int option = JOptionPane.showConfirmDialog(StudentManagementUI.this,
"确定要删除学生信息吗?", "确认", JOptionPane.YES_NO_OPTION);
if (option == JOptionPane.YES_OPTION) {
system.deleteStudent(selectedStudent.getId());
refreshStudentList();
}
} else {
JOptionPane.showMessageDialog(StudentManagementUI.this, "请选择一个学生", "提示", JOptionPane.WARNING_MESSAGE);
}
}
});
buttonPanel.add(addButton);
buttonPanel.add(updateButton);
buttonPanel.add(deleteButton);
add(searchPanel, BorderLayout.NORTH);
add(listPanel, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
searchButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String name = nameField.getText();
List<Student> students = system.getAllStudents();
studentListModel.clear();
if (name.isEmpty()) {
// 输入为空时,查询全部学生信息
for (Student student : students) {
studentListModel.addElement(student);
}
} else {
// 输入不为空时,进行模糊查询
for (Student student : students) {
if (student.getName().toLowerCase().contains(name)) {
studentListModel.addElement(student);
}
}
}
}
});
refreshStudentList();
}
private void refreshStudentList() {
List<Student> students = system.getAllStudents();
studentListModel.clear();
for (Student student : students) {
studentListModel.addElement(student);
}
}
}
全部代码私得。