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.
slms/docs/README_GUI.md

276 lines
7.4 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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