用Java Swing编程 实验步骤 1. 实现页面菜单,菜单项包括按名字读取、按学号读取、按班级读取; 2. 实现搜索框,用于输入名字或学号,根据名字或学号查询学生信息; 3. 实现班级下拉列表,用于选择班级并按班级查询学生信息。 4. 实现学生信息展示功能,展示从数据库中查询到的学生信息;5.能够连上MySQL数据库中名叫student表
时间: 2024-02-05 20:10:26 浏览: 82
的表格,从中获取学生信息并进行展示。
以下是实现步骤:
1. 实现页面菜单
使用Java Swing中的JMenuBar和JMenu类来创建页面菜单,代码示例:
```
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenuItem nameItem = new JMenuItem("按名字读取");
JMenuItem idItem = new JMenuItem("按学号读取");
JMenuItem classItem = new JMenuItem("按班级读取");
fileMenu.add(nameItem);
fileMenu.add(idItem);
fileMenu.add(classItem);
menuBar.add(fileMenu);
frame.setJMenuBar(menuBar);
```
2. 实现搜索框
使用Java Swing中的JTextField类来创建搜索框,代码示例:
```
JTextField searchField = new JTextField(20);
```
可以在输入框中添加一个监听器,当用户按下回车键时触发查询事件。
3. 实现班级下拉列表
使用Java Swing中的JComboBox类来创建班级下拉列表,代码示例:
```
String[] classes = {"一班", "二班", "三班", "四班", "五班"};
JComboBox classBox = new JComboBox(classes);
```
可以在下拉列表中添加一个监听器,当用户选择不同的班级时触发查询事件。
4. 实现学生信息展示功能
使用Java Swing中的JTable类来创建表格,代码示例:
```
JTable table = new JTable();
JScrollPane scrollPane = new JScrollPane(table);
```
可以将获取到的学生信息填充到表格中。
5. 连接MySQL数据库
使用Java中的JDBC连接MySQL数据库,代码示例:
```
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM student");
```
可以根据查询条件获取学生信息并在表格中展示。
完整代码示例:
```
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
public class StudentManagementSystem {
private JFrame frame;
private JTextField searchField;
private JComboBox classBox;
private JTable table;
private DefaultTableModel model;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
StudentManagementSystem window = new StudentManagementSystem();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public StudentManagementSystem() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenuItem nameItem = new JMenuItem("按名字读取");
JMenuItem idItem = new JMenuItem("按学号读取");
JMenuItem classItem = new JMenuItem("按班级读取");
fileMenu.add(nameItem);
fileMenu.add(idItem);
fileMenu.add(classItem);
menuBar.add(fileMenu);
frame.setJMenuBar(menuBar);
searchField = new JTextField(20);
frame.getContentPane().add(searchField, BorderLayout.NORTH);
String[] classes = {"一班", "二班", "三班", "四班", "五班"};
classBox = new JComboBox(classes);
frame.getContentPane().add(classBox, BorderLayout.WEST);
model = new DefaultTableModel();
model.addColumn("学号");
model.addColumn("姓名");
model.addColumn("班级");
table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);
frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM student");
while (rs.next()) {
String id = rs.getString("id");
String name = rs.getString("name");
String className = rs.getString("class");
model.addRow(new Object[]{id, name, className});
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
阅读全文