JavaFX入门

发布时间:2024年01月17日

1. 介绍

JavaFX允许你创建具有现代硬件加速且具有高可移植性的用户界面Java应用程序。
这里有关于JavaFX的详细参考文档,这个简短的文档是介绍如何写一个JavaFX程序。
如何在移动平台上运行JavaFX程序,请参考Gluon Mobile入门
关于对JavaFX的长期支持的更多信息,请参考JavaFX长期支持选项

JavaFX是基于JDK构建的一个独立的组件。开发JavaFX程序有两种不同的方式:
(1)使用JavaFX SDK(在17或21LTS,最新版本21或早期的授权)。
(2)使用构建工具(maven/gradle)去Maven中央仓库下载需要的模块。
无论如何,对于这两种方式,要求JDK版本JDK21,至少是JDK17。

2. JDK安装

下载安装JDK,选择合适版本即可,最新的版本可以在OpenJDK官方网站下载:https://jdk.java.net/21/。
安装好后,你可以在命令行使用”java”命令,检查是否以正确安装。以下显示的是OpenJDK21:

$java -version
openjdk version "21" 2023-09-19
OpenJDK Runtime Environment (build 21+35-2513)
OpenJDK 64-Bit Server VM (build 21+35-2513, mixed mode, sharing)

你需要设置JAVA_HOME环境变量,可以参考该向导进行设置。
说明:如果你的系统已安装多个JDK版本,你必须保证JAVA_HOME指向正确的JDK版本。JavaFX21需要JDK17以上。

3. 使用JavaFX SDK运行HelloWorld

如果你想使用JavaFX SDK代替构建工具,下载一个合适的JavaFX并解压缩。对于本教程,我们使用JavaFX21.0.1。
添加环境变量指向JavaFX SDK的lib目录,如下所示:

Linux/Mac
export PATH_TO_FX=path/to/javafx-sdk-21.0.1/lib
Windows
set PATH_TO_FX="path\to\javafx-sdk-21.0.1\lib"

你可以在命令行使用如下命令编译并运行JavaFX程序。
编译程序命令(HelloFX.java来自于sample):

Linux/Mac
javac --module-path $PATH_TO_FX --add-modules javafx.controls HelloFX.java
Windows
javac --module-path %PATH_TO_FX% --add-modules javafx.controls HelloFX.java

重要提示:确保添加所需的模块,考虑到依赖的传递性(例如,这里不需要添加javafx.graphics模块,是因为已经添加了javafx.controls模块)。但是你的程序如果用FXML,你必须添加javafx.fxml模块,如下所示:

Linux/Mac
javac --module-path $PATH_TO_FX --add-modules javafx.controls,javafx.fxml HelloFX.java
Windows
javac --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.fxml HelloFX.java

使用如下命令运行程序:

Linux/Mac
java --module-path $PATH_TO_FX --add-modules javafx.controls HelloFX
Windows
java --module-path %PATH_TO_FX% --add-modules javafx.controls HelloFX

4. 通过Maven运行HelloWorld

如果你想使用Maven去开发JavaFX程序,你不用下载JavaFX SDK。你只需要在pom.xml文件中引入相关模块,构建系统会自动下载需要的模块。
这是一个pom.xml文件,展示如何实现,此文件被包含在此示例中。
或者,我们可以使用JavaFX Maven原型来快速创建Maven项目,通过执行如下命令可以创建一个简单的JavaFX项目:

mvn archetype:generate \
        -DarchetypeGroupId=org.openjfx \
        -DarchetypeArtifactId=javafx-archetype-simple \
        -DarchetypeVersion=0.0.3 \
        -DgroupId=org.openjfx \
        -DartifactId=sample \
        -Dversion=1.0.0 \
        -Djavafx-version=11

这个pom使用JavaFX Maven plugin

<plugins>
    <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.1</version>
        <configuration>
            <mainClass>HelloFX</mainClass>
        </configuration>
    </plugin>
</plugins>

添加依赖:

<dependencies>
  <dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>11</version>
  </dependency>
</dependencies>

重要提示:请注意传递依赖是自动解析的(例如,这里不需要添加javafx.graphics模块,是因为已经添加了javafx.controls模块)。但是你的程序如果用FXML,你必须添加javafx.fxml模块。
最终,使用如下命令运行程序(基于参考示例中的HellFX.java):

mvn clean javafx:run

提示:确保正确设置Java_home环境变量。

5. 通过Gradle运行HelloWorld

和Maven相似,我们可以在build.gradle文件中定义需要的JavaFX模块。对于Gradle我们需要使用JavaFX gradle plugin:

plugins {
  id 'application'
  id 'org.openjfx.javafxplugin' version '0.0.5'
}

接下来我们添加所需的模块,例如,如果我们仅需要javafx.controls模块,我们将包括:

javafx {
    version = "12"
    modules = [ 'javafx.controls' ]
}

重要提示:请注意传递依赖是自动解析的(例如,这里不需要添加javafx.graphics模块,是因为已经添加了javafx.controls模块)。但是你的程序如果用FXML,你必须添加javafx.fxml模块。
你可以指定一个JavaFX唯一的版本。例如,你想使用JavaFX 17.0.8:

javafx {
    version = "17.0.8"
    modules = [ 'javafx.controls' ]
}

这是一个build.gradle文件,展示如何实现,这个文件来自于参考示例
使用如下命令运行这个程序(例如:使用来自参考示例的HelloFX.java):

Linux/Mac
./gradlew run
Windows
gradlew run

提示:推荐jdk版本对应gradle最小版本如下:
在这里插入图片描述

文章来源:https://blog.csdn.net/lzx5290/article/details/135650722
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。