OpenJFX 03:JavaFX11指南_01-05
1. 介绍
原文位于:https://openjfx.io/openjfx-docs/#introduction
JavaFX可以用来创建高度可移植的Java应用程序,它们具有现代化的UI,并且支持硬件加速。
本教程将会帮助你创建一个JavaFX 11应用程序并且在桌面平台上运行之。如果要了解如何在移动端平台上运行JavaFX应用程序,请参考Gluon Mobile指南(Getting Started with Gluon Mobile)
JavaFX 11构建于JDK 11之上 ,并且它是一个独立的组件。开发JavaFX应用程序有两种不同的方法:
使用一种构建系统(例如Maven/Gradle)来从Maven Center下载所需的组件
无论采用哪种方式,都需要安装最新版的JDK11。
2. 安装 Java 11
下载与你的操作系统匹配的JDK。在本教程中我们将使用OpenJDK。安装之后你可以通过命令行来使用Java命令。通过如下命令来检查是否安装了正确版本的Java:
Java
$ java -version
openjdk version "11.0.2" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.2+7)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+7, mixed mode)
1
2
3
4
$java-version
openjdkversion"11.0.2"2018-10-16
OpenJDKRuntimeEnvironment18.9(build11.0.2+7)
OpenJDK64-BitServerVM18.9(build11.0.2+7,mixedmode)
你需要设置JAVA_HOME环境变量并将其指向JDK 11安装文件夹。你可以根据此教程来设置与你的操作系统匹配的JAVA_HOME环境变量。
注意:如果你已经安装了与JDK 11不同版本的Java,则需要确认JAVA_HOME环境变量指向JDK 11。
3. 使用JavaFX 11来运行HelloWorld应用程序
原文位于:https://openjfx.io/openjfx-docs/#install-javafx
下载与你的操作系统匹配的JavaFX运行时并将其解压缩到合适位置。
增加指向运行时的lib文件夹的环境变量:
export PATH_TO_FX=path/to/javafx-sdk-11/lib
set PATH_TO_FX=”path\to\javafx-sdk-11\lib”
现在你可以通过命令行来使用JavaFX运行时对JavaFX 11应用程序进行编译和运行了。
根据如下内容来编译应用程序(例如本例中的HelloFX.java(见附录)):
javac –module-path $PATH_TO_FX –add-modules=javafx.controls HelloFX.java
javac –module-path %PATH_TO_FX% –add-modules=javafx.controls HelloFX.java
注意:扩展功能会需要额外的模块。例如,如果你的应用程序使用了FXML,则需要增加javafx.fxml模块,如下所示:
javac –module-path $PATH_TO_FX –add-modules=javafx.controls,javafx.fxml HelloFX.java
javac –module-path %PATH_TO_FX% –add-modules=javafx.controls,javafx.fxml HelloFX.java
确保添加了所需的模块,注意传递性依赖会被自动解析(例如,无需增加javafx.graphics模块,因为javafx.controls模块对它进行了传递性依赖)。
然后,参考下面的内容来运行应用程序:
java –module-path $PATH_TO_FX –add-modules=javafx.controls HelloFX
java –module-path %PATH_TO_FX% –add-modules=javafx.controls HelloFX
Java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloFX extends Application {
@Override
public void start(Stage stage) {
String javaVersion = System.getProperty("java.version");
String javafxVersion = System.getProperty("javafx.version");
Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
Scene scene = new Scene(new StackPane(l), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
importjavafx.application.Application;
importjavafx.scene.Scene;
importjavafx.scene.control.Label;
importjavafx.scene.layout.StackPane;
importjavafx.stage.Stage;
publicclassHelloFXextendsApplication{
@Override
publicvoidstart(Stagestage){
StringjavaVersion=System.getProperty("java.version");
StringjavafxVersion=System.getProperty("javafx.version");
Labell=newLabel("Hello, JavaFX "+javafxVersion+", running on Java "+javaVersion+".");
Scenescene=newScene(newStackPane(l),640,480);
stage.setScene(scene);
stage.show();
}
publicstaticvoidmain(String[]args){
launch();
}
}
4. 使用Maven来运行 HelloWorld
原文位于:https://openjfx.io/openjfx-docs/#maven
如果你希望使用Maven来开发JavaFX应用程序,则不需要下载JavaFX JDK。你只需要在pom.xml中指定所需的模块和对应的版本号,构建系统会下载对应的模块,包括与操作系统相关的本地库文件。
下面的pom.xml文件展示了如何来操作,它位于这个样例中。
XHTML
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.gluonhq
hellofx
jar
1.0-SNAPSHOT
demo
http://maven.apache.org
org.openjfx
javafx-controls
11.0.2
org.apache.maven.plugins
maven-compiler-plugin
3.8.0
11
org.codehaus.mojo
exec-maven-plugin
1.6.0
java
HelloFX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.gluonhq
hellofx
jar
1.0-SNAPSHOT
demo
http://maven.apache.org
org.openjfx
javafx-controls
11.0.2
org.apache.maven.plugins
maven-compiler-plugin
3.8.0
11
org.codehaus.mojo
exec-maven-plugin
1.6.0
java
HelloFX
通过如下命令来运行应用程序(例如:基于前面样例中的HelloFX.java):mvn compile exec:java
注意:确保已经将JAVA_HOME环境变量指向了JDK 11。
5. 使用Gradle来运行HelloWorld
原文位于:https://openjfx.io/openjfx-docs/#gradle
与Maven类似,我们可以在build.gradle文件中声明所需的JavaFX模块。不过,使用Gradle时我们需要增加JavaFX Gradle插件:
TeX
plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.5'
}
1
2
3
4
5
6
7
plugins{
id'application'
id'org.openjfx.javafxplugin'version'0.0.5'
}
我们接下来添加所需的模块。例如,如果仅需javafx.controls模块,则需要引用:
javafx { modules = [ ‘javafx.controls’ ]}
你可以指定明确的JavaFX版本。例如,如果需要指定JavaFX 11.0.1,则可以这样设置:javafx { version = “11.0.1”}
这里的 build.gradle 文件展示了如何完成任务,该文件包含在此样例中。
通过下面的命令来运行应用程序(例如使用上述样例中的HelloFX.java)
./gradlew run
gradlew run
注意:确认使用gradle 4.10以上的版本,并且设置JAVA_HOME环境变量指向JDK11。
打赏一下
支付宝
微信