You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7.4 KiB
7.4 KiB
SLMS GUI Application Guide
概述
智能图书管理系统(SLMS)的图形用户界面(GUI)应用,基于JavaFX 17开发,提供直观的图书和借阅管理功能。
系统要求
- Java: JDK 21
- JavaFX: 17 (通过Maven自动下载)
- 数据库: SQLite (library.db)
- 操作系统: Windows / macOS / Linux
快速启动
方法1: 使用批处理脚本(推荐)
run_gui.bat
方法2: 使用Maven命令
mvn javafx:run
方法3: 手动编译运行
# 设置Java环境
set JAVA_HOME=E:\2025-2026\GitAIOps\jdk
# 编译项目
mvn clean compile
# 运行GUI应用
mvn javafx:run
功能特性
📚 图书管理
- 查看图书列表: 显示所有图书的详细信息
- 添加图书: 通过表单添加新图书
- 支持实体书、电子书、期刊三种类型
- 自动生成图书ID
- ISBN唯一性验证
- 搜索图书: 根据图书ID快速查找
- 刷新列表: 实时更新图书数据
📖 借阅管理
- 借阅图书:
- 输入图书ID和用户ID
- 自动检查图书可用性
- 设置30天借阅期限
- 更新图书状态
- 归还图书:
- 输入图书ID
- 自动更新图书状态
- 记录归还日期
- 查看借阅记录: 显示所有借阅历史
- 区分已归还和借阅中状态
- 显示借阅日期和应还日期
界面布局
主窗口
┌─────────────────────────────────────────────────────────┐
│ 文件 图书 帮助 │
├─────────────────────────────────────────────────────────┤
│ ┌─────────────┬─────────────────────────────────────┐ │
│ │ 图书管理 │ 借阅管理 │ │
│ └─────────────┴─────────────────────────────────────┘ │
│ │
│ [添加图书] [搜索图书] [刷新] │
│ │
│ ┌─────────────────────────────────────────────────────┐│
│ │ ID │ 书名 │ 作者 │ ISBN │ 出版社 │ 状态 │ 类型 ││
│ ├─────┼──────┼──────┼──────┼────────┼──────┼────────┤│
│ │B001 │Java..│Bruce.│978...│机械... │可借 │实体书 ││
│ │B002 │设计..│Erich.│978...│机械... │可借 │实体书 ││
│ │... │... │... │... │... │... │... ││
│ └─────────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────────┤
│ 就绪 │
└─────────────────────────────────────────────────────────┘
菜单栏
- 文件: 退出应用
- 图书: 快速添加图书
- 帮助: 关于信息
选项卡
- 图书管理: 图书的增删改查
- 借阅管理: 借阅和归还操作
使用指南
添加图书
- 点击"添加图书"按钮或菜单"图书 → 添加图书"
- 在对话框中填写图书信息:
- 图书类型:实体书/电子书/期刊
- 书名
- 作者
- ISBN
- 出版社
- 出版日期
- 分类
- 点击"添加"按钮
- 系统自动刷新图书列表
搜索图书
- 点击"搜索图书"按钮
- 输入图书ID(如:B001)
- 查看图书详细信息
借阅图书
- 切换到"借阅管理"选项卡
- 点击"借阅图书"按钮
- 输入:
- 图书ID(如:B001)
- 用户ID(如:U1001)
- 点击"确定"
- 系统自动:
- 更新图书状态为"已借出"
- 创建借阅记录
- 设置30天后的应还日期
归还图书
- 在"借阅管理"选项卡
- 点击"归还图书"按钮
- 输入图书ID
- 点击"确定"
- 系统自动:
- 更新图书状态为"可借"
- 更新借阅记录为"已归还"
- 记录归还日期
数据共享
GUI应用与其他三端应用共享同一个SQLite数据库(library.db):
| 应用 | 状态 | 数据访问方式 |
|---|---|---|
| CLI应用 | ✅ 已测试 | 直接SQLite访问 |
| GUI应用 | ✅ 已测试 | 直接SQLite访问 |
| Web应用 | 🔄 就绪 | JDBC连接池 |
| Android应用 | 🔄 就绪 | SQLite Android API |
所有应用的数据实时同步,无需手动刷新。
测试报告
运行测试
run_gui_tests.bat
测试结果
- ✅ 所有测试通过:17/17 (100%)
- ✅ 图书管理功能正常
- ✅ 借阅管理功能正常
- ✅ 数据库同步正常
- ✅ JavaFX数据绑定正常
详细测试报告:GUI_TEST_REPORT.md
技术架构
前端层
- JavaFX 17: UI框架
- FXML: 界面布局(可选)
- CSS: 样式定制(可选)
业务层
- BookService: 图书业务逻辑
- 工厂模式: 图书对象创建
- 观察者模式: 状态变更通知
数据层
- DatabaseConnection: 单例模式数据库连接
- SQLite: 轻量级数据库
- JDBC: 数据库访问
数据绑定
ObservableList<Book> bookData = FXCollections.observableArrayList();
TableView<Book> bookTable = new TableView<>();
bookTable.setItems(bookData);
常见问题
Q: 启动时提示找不到JavaFX模块?
A: Maven会自动下载JavaFX依赖,确保网络连接正常。
Q: 窗口显示乱码?
A: 确保系统编码设置为UTF-8:
set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
Q: 数据不显示?
A:
- 确保
library.db文件存在 - 运行
init_database.bat初始化数据 - 点击"刷新"按钮
Q: 添加图书失败?
A: 检查:
- ISBN是否重复
- 所有必填字段是否填写
- 数据库文件是否有写权限
性能优化
已实现
- ✅ 数据库连接池(单例模式)
- ✅ 懒加载数据
- ✅ 异步数据刷新
- ✅ 内存缓存
建议优化
- 🔄 分页加载大量数据
- 🔄 虚拟滚动表格
- 🔄 后台线程处理耗时操作
- 🔄 数据预加载
开发信息
- 开发语言: Java 21
- UI框架: JavaFX 17
- 构建工具: Maven 3.x
- 数据库: SQLite 3.36
- 设计模式: 单例、工厂、观察者、MVC
相关文档
联系方式
如有问题或建议,请联系开发团队。
版本: 1.0
更新日期: 2025-11-19