添加注释

This commit is contained in:
2025-02-06 20:44:45 +08:00
parent 10ae171a06
commit f3da2681f3
13 changed files with 630 additions and 40 deletions
@@ -11,18 +11,35 @@ import java.awt.event.KeyEvent;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* SearchDIalog 类用于显示查询对话框,并根据用户输入的信息查询数据库中的记录。
*/
public class SearchDIalog extends JDialog {
// 用于显示查询结果的标签
public JLabel messageLabel;
// 用于存储用户输入的ID
protected int idInt;
// 内容面板
private JPanel contentPane;
// 确认按钮
private JButton buttonOK;
// 用于输入ID的文本框
private JTextField idFIeld;
// 要查询的表名
private String table;
/**
* SearchDIalog 构造函数,初始化对话框并设置相关属性。
* @param table 要查询的表名
*/
public SearchDIalog(String table) {
// 设置对话框的内容面板
setContentPane(contentPane);
// 设置对话框为模态对话框
setModal(true);
// 设置默认按钮为确认按钮
getRootPane().setDefaultButton(buttonOK);
// 根据表名设置对话框标题和提示信息
if (table.equals("books")) {
this.table = "books";
this.setTitle("查询图书信息");
@@ -36,20 +53,31 @@ public class SearchDIalog extends JDialog {
this.setTitle("查询借阅信息");
messageLabel.setText("请输入书号:");
}
// 设置事件监听器
setListener();
// 调整对话框大小以适应内容
pack();
// 设置对话框位置
setLocation();
// 设置对话框可见
setVisible(true);
}
/**
* 设置事件监听器,包括确认按钮的点击事件和文本框的回车键事件。
*/
private void setListener() {
// 为确认按钮添加事件监听器
buttonOK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 点击确认按钮时执行的操作
onOK();
}
});
// 为文本框添加键盘事件监听器
idFIeld.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
// 当用户按下回车键时执行的操作
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
onOK();
}
@@ -57,16 +85,28 @@ public class SearchDIalog extends JDialog {
});
}
/**
* 设置对话框位置,使其居中显示在屏幕上。
*/
private void setLocation() {
// 设置对话框位置,使其居中显示在屏幕上
setLocation(new ScreenSize().width / 2 - getWidth() / 2, new ScreenSize().height / 2 - getHeight() / 2);
}
/**
* 点击确认按钮或按下回车键时执行的操作,查询数据库并显示结果。
*/
private void onOK() {
// 执行SQL查询并获取结果集
ResultSet rs = SQLExe();
// 用于存储查询结果的字符串
String message = "";
try {
// 如果结果集不为空且有下一条记录
if (rs != null && rs.next()) {
// 用于存储查询结果的标题
String title = "";
// 根据表名生成查询结果的字符串
if (table.equals("books")) {
message = "书名:\t" + rs.getString("book_name") + "\n类别:\t" + rs.getString("book_type") + "\n书号:\t" + rs.getInt("book_id") + "\nISBN\t" + rs.getString("ISBN");
title = "图书信息";
@@ -77,32 +117,53 @@ public class SearchDIalog extends JDialog {
message = "学生姓名:\t" + rs.getString("student_name") + "\n学号:\t" + rs.getInt("student_id") + "\n班级:\t" + rs.getString("student_class") + "\n性别:\t" + rs.getString("student_gender") + "\n书名:\t" + rs.getString("book_name") + "\n书号:\t" + rs.getInt("book_id") + "\n类别:\t" + rs.getString("book_type") + "\nISBN\t" + rs.getString("ISBN");
title = "借阅信息";
}
// 显示查询结果
new showMessae(message, title);
} else {
// 如果未找到记录,则显示错误信息
JOptionPane.showMessageDialog(this, "未找到", "未找到", JOptionPane.WARNING_MESSAGE);
}
} catch (SQLException e) {
// 抛出运行时异常
throw new RuntimeException(e);
}
}
/**
* 执行SQL查询并返回结果集。
* @return 查询结果集
*/
private ResultSet SQLExe() {
// 用于存储查询结果集
ResultSet rs = null;
try {
// 将用户输入的ID转换为整数
idInt = Integer.valueOf(idFIeld.getText());
// 创建数据库连接器
Connector connector = new Connector();
// 执行SQL查询并获取结果集
rs = connector.executeQuery(SQLExeMaker(table));
} catch (NumberFormatException e) {
// 如果用户输入的ID不是整数,则显示错误信息
JOptionPane.showMessageDialog(this, "请输入一个整数", "错误", JOptionPane.ERROR_MESSAGE);
} catch (SQLException e) {
// 抛出运行时异常
throw new RuntimeException(e);
} catch (ClassNotFoundException e) {
// 抛出运行时异常
throw new RuntimeException(e);
}
// 返回查询结果集
return rs;
}
/**
* 根据表名生成SQL查询语句。
* @param table 要查询的表名
* @return SQL查询语句
*/
private String SQLExeMaker(String table) {
// 根据表名生成SQL查询语句
if (table.equals("books")) {
return "SELECT * FROM `books` WHERE `book_id` = " + idInt + ";";
} else if (table.equals("students")) {