音频解说
JavaFX 14现在已经可以公开使用了,它更新了跨平台的GUI框架,可以跨计算机、嵌入式设备、iOS和Android扩展单个代码库。
这次发布是继Java在桌面平台上“死亡”之后,在这个充满活力的死后世界的又一个里程碑。软件工程师格瑞特·格伦沃尔德在之前的一篇演讲中谈到了这种演变,“还没有死——桌面上的Java”。与已被推迟上映的詹姆斯•邦德(James Bond)系列电影《没有时间去死》(No Time to Die)不同,Java“没有时间去死”,因为它被广泛采用,而且还在不断发展。自从JavaFX在Oracle Java之外作为一个框架被拆解之后,一个著名的社区开始使用来自Microsoft、Gluon、Pivotal等的成员进行维护。JavaFX 14包含了显著的增强,包括在WebView组件中对HTTP/2的支持。WebView是一个嵌入式web浏览器组件,它使开发人员能够在他们的JavaFX应用程序中直接控制浏览器,例如将本地Java代码与外部托管的web应用程序混合在一起。
对于开发人员来说,选择JavaFX框架的一个驱动因素是能够编写一个能够跨Windows、Mac和Linux、以及运行Android和iOS的移动电话和平板电脑的应用程序。跨平台功能是通过JavaFX框架和GraalVM之间的集成提供的。在编译之后,单个应用程序将产生多个输出。与传统的Java JAR文件和类路径不同,GraalVM将为每个平台生成一个二进制输出:一个用于Windows,一个用于iOS,等等。当为iOS本地编译时,生成的JavaFX应用程序支持当前的iOS功能,如位码。Android的功能也类似。跨平台应用程序的开发人员只需要了解Java和JavaFX框架,然后GraalVM负责编译阶段。
OpenJFX社区为开发人员提供了一系列库和工具来创建应用程序,并将重点放在使应用程序独一无二的业务逻辑上。关键库的列表可以通过JavaFX获得,包括现有的UI框架库,如Twitter的Bootstrap。这是因为JavaFX提供了对CSS的本机支持。对于Java开发人员来说,这个库提供了一个类似于Electron向Node开发人员提供的最终结果,不同之处是项目是本地的,而不是整个本地web浏览器。
创建JavaFX应用程序的开发人员有两种开发选择:Java代码或FXML。FXML是一种基于xml的布局,它允许设计人员使用SceneBuilder之类的工具处理独立于代码之外的元素。Gluon提供了一个公开下载的开源SceneBuilder工具构建,可以独立使用,也可以与Apache NetBeans等ide集成使用。
JavaFX应用程序还具有运行时诊断功能。作为Java应用程序,它们与著名的性能监视工具(如OpenJDK飞行记录器)集成,但UI诊断工具也存在。一个名为Scenic View的工具提供了查看正在运行的JavaFX应用程序并导航其UI布局结构的功能,类似于基于浏览器的DOM检查工具。
希望为单个设备目标或跨平台创建图形化Java应用程序的团队可以下载JavaFX作为库,并将其与任何Java发行版(如AdoptOpenJDK)一起使用。