Java GUI 学生管理系统
时间: 2023-12-19 21:05:44 浏览: 40
Java GUI学生管理系统是一个基于Java GUI开发的应用程序,用于管理学生信息。该系统使用Swing作为GUI库,使用JDBC操作数据库,并在程序运行时创建数据库表结构信息。以下是该系统的功能和特点:
1. 添加、修改和删除学生信息。
2. 显示学生信息列表,包括学生姓名、学号、性别、年龄、专业等信息。
3. 支持按照学号、姓名等关键字搜索学生信息。
4. 支持导入和导出学生信息到文件。
5. 支持设置用户账号信息和角色权限。
以下是一个简单的Java GUI学生管理系统的代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class StudentManagementSystem extends JFrame implements ActionListener {
private JLabel nameLabel, idLabel, genderLabel, ageLabel, majorLabel;
private JTextField nameField, idField, genderField, ageField, majorField;
private JButton addButton, updateButton, deleteButton, searchButton;
private JTable table;
private JScrollPane scrollPane;
private DefaultTableModel model;
public StudentManagementSystem() {
setTitle("学生信息管理系统");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建表单控件
nameLabel = new JLabel("姓名:");
nameField = new JTextField(20);
idLabel = new JLabel("学号:");
idField = new JTextField(20);
genderLabel = new JLabel("性别:");
genderField = new JTextField(20);
ageLabel = new JLabel("年龄:");
ageField = new JTextField(20);
majorLabel = new JLabel("专业:");
majorField = new JTextField(20);
// 创建按钮控件
addButton = new JButton("添加");
addButton.addActionListener(this);
updateButton = new JButton("修改");
updateButton.addActionListener(this);
deleteButton = new JButton("删除");
deleteButton.addActionListener(this);
searchButton = new JButton("搜索");
searchButton.addActionListener(this);
// 创建表格控件
model = new DefaultTableModel();
model.addColumn("姓名");
model.addColumn("学号");
model.addColumn("性别");
model.addColumn("年龄");
model.addColumn("专业");
table = new JTable(model);
scrollPane = new JScrollPane(table);
// 创建表单布局
JPanel formPanel = new JPanel(new GridLayout(5, 2));
formPanel.add(nameLabel);
formPanel.add(nameField);
formPanel.add(idLabel);
formPanel.add(idField);
formPanel.add(genderLabel);
formPanel.add(genderField);
formPanel.add(ageLabel);
formPanel.add(ageField);
formPanel.add(majorLabel);
formPanel.add(majorField);
// 创建按钮布局
JPanel buttonPanel = new JPanel(new FlowLayout());
buttonPanel.add(addButton);
buttonPanel.add(updateButton);
buttonPanel.add(deleteButton);
buttonPanel.add(searchButton);
// 创建主布局
setLayout(new BorderLayout());
add(formPanel, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
add(buttonPanel, BorderLayout.SOUTH);
// 加载学生信息
loadStudents();
}
// 加载学生信息
private void loadStudents() {
try {
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
// 查询学生信息
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM students");
// 清空表格
model.setRowCount(0);
// 添加学生信息到表格
while (rs.next()) {
String name = rs.getString("name");
String id = rs.getString("id");
String gender = rs.getString("gender");
int age = rs.getInt("age");
String major = rs.getString("major");
model.addRow(new Object[]{name, id, gender, age, major});
}
// 关闭数据库连接
rs.close();
stmt.close();
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
// 处理按钮点击事件
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
// 添加学生信息
try {
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
// 插入学生信息
PreparedStatement stmt = conn.prepareStatement("INSERT INTO students(name, id, gender, age, major) VALUES (?, ?, ?, ?, ?)");
stmt.setString(1, nameField.getText());
stmt.setString(2, idField.getText());
stmt.setString(3, genderField.getText());
stmt.setInt(4, Integer.parseInt(ageField.getText()));
stmt.setString(5, majorField.getText());
stmt.executeUpdate();
// 关闭数据库连接
stmt.close();
conn.close();
// 重新加载学生信息
loadStudents();
} catch (Exception ex) {
ex.printStackTrace();
}
} else if (e.getSource() == updateButton) {
// 修改学生信息
try {
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
// 更新学生信息
PreparedStatement stmt = conn.prepareStatement("UPDATE students SET name=?, gender=?, age=?, major=? WHERE id=?");
stmt.setString(1, nameField.getText());
stmt.setString(2, genderField.getText());
stmt.setInt(3, Integer.parseInt(ageField.getText()));
stmt.setString(4, majorField.getText());
stmt.setString(5, idField.getText());
stmt.executeUpdate();
// 关闭数据库连接
stmt.close();
conn.close();
// 重新加载学生信息
loadStudents();
} catch (Exception ex) {
ex.printStackTrace();
}
} else if (e.getSource() == deleteButton) {
// 删除学生信息
try {
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
// 删除学生信息
PreparedStatement stmt = conn.prepareStatement("DELETE FROM students WHERE id=?");
stmt.setString(1, idField.getText());
stmt.executeUpdate();
// 关闭数据库连接
stmt.close();
conn.close();
// 重新加载学生信息
loadStudents();
} catch (Exception ex) {
ex.printStackTrace();
}
} else if (e.getSource() == searchButton) {
// 搜索学生信息
try {
// 连接数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "password");
// 查询学生信息
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM students WHERE id=? OR name LIKE ?");
stmt.setString(1, idField.getText());
stmt.setString(2, "%" + nameField.getText() + "%");
ResultSet rs = stmt.executeQuery();
// 清空表格
model.setRowCount(0);
// 添加学生信息到表格
while (rs.next()) {
String name = rs.getString("name");
String id = rs.getString("id");
String gender = rs.getString("gender");
int age = rs.getInt("age");
String major = rs.getString("major");
model.addRow(new Object[]{name, id, gender, age, major});
}
// 关闭数据库连接
rs.close();
stmt.close();
conn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
StudentManagementSystem system = new StudentManagementSystem();
system.setVisible(true);
}
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)