运用Java Swing图形用户界面编程 实验步骤 1. 实现页面菜单,菜单项包括按名字读取、按学号读取、按班级读取; 2. 实现搜索框,用于输入名字或学号,根据名字或学号查询学生信息; 3. 实现班级下拉列表,用于选择班级并按班级查询学生信息。 4. 实现学生信息展示功能,展示从数据库中查询到的学生信息;5.连接到MySQL数据库中的student中
时间: 2024-02-26 19:54:17 浏览: 95
的数据表,实现数据的读取和展示。
以下是实验步骤的具体实现:
1. 首先,创建一个JFrame对象,用于实现页面菜单、搜索框、班级下拉列表和学生信息展示功能。
2. 在页面上添加一个JMenuBar对象,用于实现菜单。
3. 在JMenuBar对象中添加JMenu对象,用于实现按名字读取、按学号读取、按班级读取菜单项。
4. 为菜单项添加ActionListener监听器,实现对应的功能。
5. 在页面上添加一个JTextField对象,用于实现搜索框。
6. 为JTextField对象添加ActionListener监听器,实现根据名字或学号查询学生信息的功能。
7. 在页面上添加一个JComboBox对象,用于实现班级下拉列表。
8. 为JComboBox对象添加ActionListener监听器,实现根据班级查询学生信息的功能。
9. 创建一个JTable对象,用于展示学生信息。
10. 连接到MySQL数据库中的student表,读取数据并展示在JTable对象中。
11. 最后,将JMenuBar、JTextField、JComboBox和JTable对象添加到JFrame对象中,用于实现完整的图形用户界面。
注意:在连接到MySQL数据库时,需要使用JDBC连接,具体实现方法可以参考Java官方文档或其他相关教程。
相关问题
掌握Java Swing图形用户界面编程 实验步骤 1.实现页面菜单,菜单项包括按名字读取、按学号读取、按班级读取; 2.实现搜索框,用于输入名字或学号,根据名字或学号查询学生信息; 3.实现班级下拉列表,用于选择班级并按班级查询学生信息。 4.实现学生信息展示功能,展示从数据库中查询到的学生信息;
好的,我会尽力回答你的问题。
首先,要掌握Java Swing图形用户界面编程,需要具备一定的Java编程基础。接下来,我将简单介绍一下实验步骤:
1. 实现页面菜单
在Swing中,可以使用JMenuBar、JMenu和JMenuItem来实现页面菜单。首先创建一个JMenuBar对象,然后在其上添加JMenu对象,最后在JMenu对象上添加JMenuItem对象。具体代码如下:
```
JMenuBar menuBar = new JMenuBar(); // 创建菜单栏
JMenu menu = new JMenu("菜单"); // 创建菜单
JMenuItem item1 = new JMenuItem("按名字读取"); // 创建菜单项
JMenuItem item2 = new JMenuItem("按学号读取"); // 创建菜单项
JMenuItem item3 = new JMenuItem("按班级读取"); // 创建菜单项
menu.add(item1); // 添加菜单项
menu.add(item2); // 添加菜单项
menu.add(item3); // 添加菜单项
menuBar.add(menu); // 添加菜单到菜单栏
```
2. 实现搜索框
在Swing中,可以使用JTextField和JButton组合实现搜索框。在JTextField中输入查询条件,点击JButton按钮后进行查询操作。具体代码如下:
```
JTextField searchField = new JTextField(20); // 创建文本框,用于输入查询条件
JButton searchButton = new JButton("搜索"); // 创建按钮,用于触发查询操作
searchButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String keyword = searchField.getText(); // 获取查询条件
// 根据查询条件进行查询操作
}
});
```
3. 实现班级下拉列表
在Swing中,可以使用JComboBox组件实现下拉列表。首先创建一个JComboBox对象,然后向其中添加班级选项,最后在选项改变时触发查询操作。具体代码如下:
```
JComboBox<String> classComboBox = new JComboBox<String>(); // 创建下拉列表,用于选择班级
classComboBox.addItem("一班"); // 添加班级选项
classComboBox.addItem("二班"); // 添加班级选项
classComboBox.addItem("三班"); // 添加班级选项
classComboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String className = (String) classComboBox.getSelectedItem(); // 获取选中的班级
// 根据班级进行查询操作
}
});
```
4. 实现学生信息展示功能
在Swing中,可以使用JTable组件实现表格展示学生信息。首先创建一个JTable对象,并将数据填充到其中,然后将JTable添加到JScrollPane中,最后将JScrollPane添加到页面中。具体代码如下:
```
String[] columnNames = {"学号", "姓名", "班级", "性别", "成绩"}; // 定义表格列名
Object[][] rowData = {{"001", "张三", "一班", "男", 90},
{"002", "李四", "二班", "女", 85},
{"003", "王五", "三班", "男", 92}}; // 定义表格数据
JTable table = new JTable(rowData, columnNames); // 创建表格
JScrollPane scrollPane = new JScrollPane(table); // 创建滚动面板,将表格添加到其中
frame.add(scrollPane); // 将滚动面板添加到页面中
```
以上就是Java Swing图形用户界面编程的实验步骤,希望能对你有所帮助。
实验目标 掌握Java Swing图形用户界面编程 实验步骤 1. 实现页面菜单,菜单项包括按名字读取、按学号读取、按班级读取; 2. 实现搜索框,用于输入名字或学号,根据名字或学号查询学生信息; 3. 实现班级下拉列表,用于选择班级并按班级查询学生信息。 4. 实现学生信息展示功能,展示从数据库中查询到的学生信息
;
以下是一个简单的Java Swing图形用户界面编程示例,实现了以上的四个功能:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class StudentInfoGUI extends JFrame implements ActionListener {
private static final String DB_URL = "jdbc:mysql://localhost:3306/student_db";
private static final String DB_USER = "root";
private static final String DB_PASSWORD = "root";
private static final String[] CLASS_OPTIONS = {"Class 1", "Class 2", "Class 3"};
private JLabel nameLabel, idLabel, classLabel;
private JTextField nameField, idField;
private JComboBox<String> classComboBox;
private JButton searchButton;
private JTextArea resultArea;
public StudentInfoGUI() {
super("Student Info");
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenuItem nameItem = new JMenuItem("Search by Name");
JMenuItem idItem = new JMenuItem("Search by ID");
JMenuItem classItem = new JMenuItem("Search by Class");
nameItem.addActionListener(this);
idItem.addActionListener(this);
classItem.addActionListener(this);
fileMenu.add(nameItem);
fileMenu.add(idItem);
fileMenu.add(classItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
// 创建搜索面板
JPanel searchPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
nameLabel = new JLabel("Name:");
idLabel = new JLabel("ID:");
nameField = new JTextField(10);
idField = new JTextField(10);
searchButton = new JButton("Search");
searchButton.addActionListener(this);
searchPanel.add(nameLabel);
searchPanel.add(nameField);
searchPanel.add(idLabel);
searchPanel.add(idField);
searchPanel.add(searchButton);
// 创建班级下拉列表
classLabel = new JLabel("Class:");
classComboBox = new JComboBox<>(CLASS_OPTIONS);
classComboBox.addActionListener(this);
// 创建结果文本域
resultArea = new JTextArea(20, 50);
resultArea.setEditable(false);
// 将组件添加到容器中
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(searchPanel, BorderLayout.NORTH);
JPanel classPanel = new JPanel();
classPanel.add(classLabel);
classPanel.add(classComboBox);
contentPane.add(classPanel, BorderLayout.WEST);
contentPane.add(new JScrollPane(resultArea), BorderLayout.CENTER);
setSize(600, 400);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == searchButton) {
String name = nameField.getText().trim();
String id = idField.getText().trim();
String className = (String) classComboBox.getSelectedItem();
search(name, id, className);
} else if (e.getActionCommand().equals("Search by Name")) {
nameField.requestFocus();
} else if (e.getActionCommand().equals("Search by ID")) {
idField.requestFocus();
} else if (e.getActionCommand().equals("Search by Class")) {
classComboBox.requestFocus();
}
}
private void search(String name, String id, String className) {
resultArea.setText("");
String sql = "SELECT * FROM students WHERE name LIKE ? AND id LIKE ? AND class LIKE ?";
try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, "%" + name + "%");
stmt.setString(2, "%" + id + "%");
stmt.setString(3, "%" + className + "%");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
String result = String.format("Name: %s\nID: %s\nClass: %s\nScore: %d\n\n",
rs.getString("name"), rs.getString("id"), rs.getString("class"), rs.getInt("score"));
resultArea.append(result);
}
if (resultArea.getText().isEmpty()) {
resultArea.setText("No records found.");
}
} catch (SQLException ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(this, "Error: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
StudentInfoGUI gui = new StudentInfoGUI();
gui.setVisible(true);
}
}
```
在本示例中,我们使用了Java Swing的各种组件,如JLabel、JTextField、JComboBox、JButton、JTextArea等,同时还实现了ActionListener接口以响应用户事件。在搜索函数中,我们使用了Java JDBC连接MySQL数据库,并使用PreparedStatement执行带参数的SQL查询语句,以避免SQL注入攻击。
阅读全文
相关推荐















