java10javafx_JavaFX11指南

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。

打赏一下

支付宝

微信

Chapter 1, Stages, Scenes, and Layout, starts from the essential basis of the JavaFX application—Stage, Scene, JavaFX Event Thread, and the layout graph concept. Chapter 2, Building Blocks – Shapes, Text, and Controls, fills the window we created in the previous chapter with various building blocks provided by the JavaFX API. Chapter 3, Connecting Pieces – Binding, explains that binding is a new method to greatly simplify communication between components. Chapter 4, FXML, introduces FXML is a powerful tool for building a complex JavaFX UI and separating business logic from UI design. We will design an FXML application and try SceneBuilder—an FXML-based UI designer tool. Chapter 5, Animation, demonstrates how to use the JavaFX Animation API to create various types of dynamic content. Chapter 6, Styling Applications with CSS, outlines that JavaFX supports Cascading Style Sheets (CSS) to style applications similar to web pages. Chapter 7, Building a Dynamic UI, reviews several JavaFX practices to build a modern adaptive UI. Chapter 8, Effects, explains that effects such as a reflection or shadow are an essential part of modern applications. Chapter 9, Media and WebView, showcases how JavaFX provides special controls dedicated to video, audio, and web content. Chapter 10, Advanced Controls and Charts, reviews complex controls such as tables and charts. Chapter 11, Packaging with Java9 Jigsaw, goes through the next step after writing an application—deploying it to end users. We will review JavaFX app building, packaging, and Jigsaw modularization options. Chapter 12, 3D at a Glance, teaches us to create several small 3D applications and study JavaFX's 3D capabilities. Chapter 13, What's Next?, looks at further options for mastering JavaFX
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值