Skip to content

JavaFX 实践笔记

JavaFX 是 Java 桌面应用开发框架,适合编写工具类客户端、内部管理端、小型桌面程序。这个目录记录 JavaFX 使用过程中的打包、部署和踩坑。

内容索引

内容重点
JavaFX UI 线程耗时任务、后台线程和安全更新界面
JavaFX 打包流程从可运行 JAR、运行时镜像到安装包验证
jpackage 命令参考app-imageexe 的参数与 Windows 示例

JavaFX应用发布流程

mermaid
flowchart TD
    A["编写 JavaFX 应用"] --> B["配置主类"]
    B --> C["构建并验证 JAR"]
    C --> D["准备运行时模块"]
    D --> E["使用 jpackage 打包"]
    E --> F["生成安装包"]
    F --> G["在干净环境安装验证"]

常见关注点

  • JDK 版本和 JavaFX 版本要匹配。
  • 打包时要确认主类、图标、应用名和版本号。
  • 如果使用模块化,需要检查 module-info.java
  • 目标机器没有 JDK 时,需要把运行时一起打包。

先阅读完整打包流程,确认输入产物和验证步骤,再按 jpackage 命令参考执行打包。

JavaFX 项目结构

目录或文件作用
Application 主类启动 JavaFX 应用,加载窗口
FXML声明界面结构
Controller处理界面事件和业务交互
CSS控制界面样式
resources图标、图片、配置文件

不是所有 JavaFX 项目都必须使用 FXML。小工具可以直接用 Java 代码构建界面;界面复杂后,再考虑 FXML 拆分视图和控制逻辑。

事件处理流程

mermaid
flowchart LR
    A[用户点击按钮] --> B[JavaFX Application Thread]
    B --> C[Controller 事件方法]
    C --> D{是否耗时任务}
    D -- 否 --> E[直接更新 UI]
    D -- 是 --> F[后台线程执行任务]
    F --> G[Platform.runLater 更新 UI]

开发注意事项

  1. UI 更新必须回到 JavaFX Application Thread。
  2. 耗时任务不能直接放在按钮点击事件里,否则界面会卡住。
  3. 打包前要确认图标、资源路径和主类配置。
  4. 如果使用第三方库,要确认 jpackage 能正确打包依赖。
  5. 桌面应用要特别注意异常弹窗和日志文件位置。

适合做的小工具

  1. 文件批处理工具。
  2. 图片压缩或转换工具。
  3. 内部系统桌面客户端。
  4. 本地配置生成器。
  5. 数据导入导出辅助工具。