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

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...│机械... │可借  │实体书  ││
│ │...  │...   │...   │...   │...     │...   │...     ││
│ └─────────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────────┤
│ 就绪                                                    │
└─────────────────────────────────────────────────────────┘

菜单栏

  • 文件: 退出应用
  • 图书: 快速添加图书
  • 帮助: 关于信息

选项卡

  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

所有应用的数据实时同步,无需手动刷新。


测试报告

运行测试

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:

  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

相关文档


联系方式

如有问题或建议,请联系开发团队。

版本: 1.0
更新日期: 2025-11-19