JavaFX 27 亮点
JavaFX 27 已正式发布。本文整理了本次发布中最值得关注的部分。
重要变更
JavaFX 27 需要 JDK 25 或更高版本
JavaFX 27 使用 --release 25 编译,因此运行时需要 JDK 25 或更高版本。
如果使用更旧的 JDK 运行,Java 启动器会报错退出,并提示无法读取 javafx.base 模块。
详情参见 JDK-8376601。
在 macOS 上,JavaFX 的默认渲染管线已由基于 OpenGL 的 ES2 管线切换为 Metal,
应用因此可以获得更现代、更快、更省电的图形 API。
如有需要,应用仍可通过设置 -Dprism.order=es2 系统属性继续使用 ES2 管线。
详情参见 JDK-8373091。
值得关注的新特性:
新增 API:
- RichTextArea 制表位(tab stop)属性
- RichTextArea 内嵌图片、文字背景、波浪下划线属性
- 条件式样式表导入
- ConditionalFeature 媒体查询
- Platform 媒体查询
- 标题栏中的 JavaFX 控件
新增功能:
- macOS 上 Metal 成为默认渲染管线
- 动画现在会遵循系统的“减少动态效果”偏好
- RichTextArea 新增文本 API,并改进无障碍支持
- 改进 macOS 无障碍支持,包括可导航的静态文本和超链接
- 通过 GtkFileChooserNative 改进了 Flatpak 集成
- iOS 支持改进,包括 UIWindowScene 支持
社区在本版本中共同修复了 60 多个缺陷,以下是其中较重要的修复:
- 修复 FilteredList 与 ListChangeBuilder 的多处索引处理问题
- 修复 TableView、TreeView、TreeTableView、ChoiceBox、ListView 中选择与排序缓慢的问题
- 修复 ComboBox 弹出位置、字符串转换器更新、null 处理与单元格图形的问题
- 修复空的、获得焦点的文本输入控件中提示文本不可见的问题
- 修复 RichTextArea 的导出与属性处理问题
- 修复 Metal 渲染与渲染缩放相关问题
- 修复带 max-width 样式的 TextFlow 节点在 FlowPane 中的换行布局问题
- 修复 macOS 菜单栏、触控板滚动与系统菜单行为问题
- 修复 iOS Glass 工具包崩溃与线程问题
- 修复 WebKit 更新后 GIF 动图不再播放的问题
此外,本版本还升级了以下依赖:
- WebKit 升级至 623.1
- GStreamer 升级至 1.28.3
- libxml2 升级至 2.15.3
- libxslt 升级至 1.1.45
- JPEG 图像解码库升级至 10
- 为 libavcodec 62 版本提供媒体支持
安全问题修复:
- 改进图形播放
- 改进音频转换
- 更好地处理 MP4 文件
- 增强播放列表加载
- 改进编辑器选区
- 增强 WebView 资源加载
完整的变更列表可查看 Gitee(JavaFX 27 发布说明),
或 GitHub 原版。
感谢 Gluon 团队承担了 JavaFX 27 的大部分工作,
也欢迎了解他们的 JavaFX 长期支持(LTS)服务。
查看 JavaFX 27 API 文档 · JavaFX 入门文档