JavaFX11工具包Win64是Java官方最新推出的一套JavaFX图形和多媒体工具包应用,基于Java语言构建,将JavaFX模块与JDK分开提供,让开发者编写程序更加高效快捷,欢迎下载使用!
JavaFX 11 OpenJFX是一个开源的下一代客户端应用程序平台,用于基于Java构建的桌面,移动和嵌入式系统。
这是许多个人和公司的共同努力,目标是为开发富客户端应用程序生成一个现代,高效且功能齐全的工具包。
JavaFX 11构建于Java 11之上,计划于2018年9月25日在相同的时间范围内发布。从Java 11开始,JavaFX框架是一个独立的组件。开发JavaFX应用程序有两种不同的选择:
下载并安装JavaFX SDK
使用构建系统(例如maven / gradle)从Maven Central下载所需的模块。
1、使用JavaFX 11运行HelloWorld
下载适用于您的操作系统的JavaFX SDK。
您现在可以从命令行编译和运行JavaFX 11应用程序。 为此,您必须将模块路径指向JavaFX模块的位置,例如
export PATH_TO_FX = / path / to / javafx-sdk-11 / lib
编译代码(例如使用HelloFX.java)如下:
javac --module-path $ PATH_TO_FX --add-modules = javafx.controls HelloFX.java
确保添加所需的模块,同时考虑传递依赖性(因此不需要添加javafx.graphics模块,因为javafx.controls模块需要它)。
接下来,运行应用程序:
java --module-path $ PATH_TO_FX --add-modules = javafx.controls HelloFX
2、使用Maven运行HelloWorld
如果要使用maven开发JavaFX应用程序,则无需下载JavaFX SDK。 只需在pom.xml中指定所需的模块和版本,构建系统将下载所需的模块,包括适用于您平台的本机库。
这是一个pom.xml文件,显示了如何实现这一目标。
使用以下命令运行应用程序(例如使用HelloFX.java):
mvn编译exec:java
注意:确保将JAVA_HOME环境变量设置为JDK 11。
3、使用Gradle运行HelloWorld
与Maven类似,我们可以将JavaFX jar声明为build.gradle中的依赖项。但是,对于Gradle,我们需要找到并指定平台/ OS作为分类器。这需要一个小脚本:
在Gradle中解决传递依赖性时不考虑分类器,我们需要使用platform作为分类器指定所有三个JavaFX模块。
接下来,我们将--module-path设置为可能是类路径的值,并将javafx.controls作为模块添加到javac和java命令中。
这是一个build.gradle文件,它显示了如何实现这一目标。
使用以下命令运行应用程序(例如使用HelloFX.java):
gradle run
注意:确保使用gradle版本4.8+并将JAVA_HOME环境变量设置为JDK 11。
JavaFX 模块指定:因为 JDK 不再包含 JavaFX,那么必须明确包含应用程序使用的 JavaFX 模块,详情见:https://openjfx.io/openjfx-docs/。
添加 API 以自定义 Spinner 控件的步骤重复计时。在 JavaFX 11 中修改值步骤之前,必须在 Spinner 控件箭头按钮上按下鼠标一段默认持续时间,JavaFX 11 中已添加两个新属性“initialDelay”和“repeatDelay”来配置此操作。
javafx.* 模块现在由应用程序类加载器加载,默认情况下不再具有权限。想要在启用安全管理器的情况下运行的应用程序需要使用“-Djava.security.policy”指定自定义策略文件,并为每个 javafx.* 模块授予所有权限。
默认 GTK 版本从 v2 更新为 v3。将在存在 gtk3 库的 Linux 平台上使用 GTK 3。
新增:添加了公共 FX Robot API 以支持模拟用户交互,例如在键盘上输入,使用鼠标并捕获图形信息。
移除:FX Media 移除了对 libavcodec 53 和 55 的支持。
OpenJDK 11 环境下,JavaFX 在 Ubuntu 18.04 上启用 Wayland 时崩溃。
使用 JDK 10 运行时,Swing interop 需要标准的导出配置。
使用具有独立 SDK 的安全管理器运行时,Swing interop 失效。
使用 jlink 创建的小 jdk 映像时,Swing interop 失效。