# hotel-management-fx **Repository Path**: prehitting/hotel-management-fx ## Basic Information - **Project Name**: hotel-management-fx - **Description**: 基于JavaFx的酒店管理系统 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-02-09 - **Last Updated**: 2026-01-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # hotel-management-fx # 开发环境配置 1. 仅支持JDK1.8,若在JDK11以上,请自行配置JavaFX环境 2. 需maven环境 2. 请安装SceneBuilder8版本,注意是8版本 [下载地址](https://gluonhq.com/products/scene-builder/) 在IDEA中配置环境 ![img.png](doc/img/img.png) 3. 任选一个FXML文件,右键选择用SceneBuilder尝试打开,能启动则成功 4. 请创建数据库hotel-management(注意:编码、排序方式请选择Chinese_**,如果乱码,请百度选择哪一种排序方式),导入doc包下的sql文件 5. 在portal模块下的application.yaml中配置数据库url,用户名,密码 6. 运行AppPortal # 二次开发指导 1. 在portal模块下的resources/**/views文件夹下创建View.fxml文件,右击用SceneBuilder打开 2. 打开后即可进行拖拽式组件开发,ctrl+s保存自动同步至fxml文件中 3. 每一个fxml文件绑定一个Controller(fx:controller="com.njit.hotel.portal.controller.HomeController") 4. 请在controller包下创建对应的Controller 5. controller注解@FXMLController,继承BaseController 6. 在views包下创建对应的View,并注解@FXMLView("fxml文件名带后缀名") 7. 在BaseController中的init方法中注册Controller和View 7. 回到SceneBuilder,若你想给一个按钮绑定事件,在右侧找到onMouseClicked,指定一个ID 8. 在界面菜单栏中的View下拉选项中选择showSampleControllerSkeleton,复制其中的代码到Controller中 9. 编写逻辑即可 # 二次开发须知 * 使用MybatisPlus格式开发,公共字段已在CommonFieldHandler中处理 * 创建.fxml文件对应的controller时,请继承base包下的BaseController * 在init方法中手动注入View和对应的Controller * 当需要页面跳转时请执行BaseController中的jumpTo(View)方法 * 如果页面中有需要动态更新的数据,请重写BaseController中的refreshData,该方法会在每次载入时调用 * 如果需要在跳转时传递参数,请在jumpTo方法中传递参数 * 注意: Controller中的组件为懒加载,首次加载进页面调用refreshData(args)方法时会产生NPE问题,故会存入父类的data变量中,请先判断map是否为NULL * db模块已提供R结果类,可以减少Controller层的逻辑判断,看情况使用 * 用户登录之后会将id存入LocalStorage中,请忽略接口校验是否登录 * 部分常量已在db模块下的state包中提供,例如订单状态。逻辑删除,房间状态,用户状态