javaFX安装及使用

这篇具有很好参考价值的文章主要介绍了javaFX安装及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

Jdk 从 1.8 开始 jdk 自带 JavaFX,到 Jdk 11 开始 jdk 不再内置 JavaFX,所以如果你使用的是高版本的 jdk 在使用 javaFX 的时候就需要先安装 javaFX,并在 idea 里进行配置。

本文主要是对高版本 jdk 安装配置 javaFX 进行讲解,在本文开始前,你的电脑安装的 jdk 版本应该大于等于 17 。

如果你还没安装 jdk17 ,可以参考 jdk17安装,多版本jdk安装切换 安装

如果你对 javaFX ,感兴趣可以访问 javaFX 官网首页

(你也可以在电脑上安装多个版本的 jdk ,在 idea 项目设置里指定使用已安装的 jdk 17 版本)

使用 javaFX 可以通过下载 javaFX SDK 然后导入到项目中,也可以通过 Maven 自动下载依赖使用,下面讲解这两种方式。

一、 javaFX 各模块名和作用

根据 官网 javaFX 模块说明 ,javaFX SDK 里有以下模块:

模块名 说明
javafx-controls 定义可用于JavaFX UI工具包的UI控件、图表和外观。
javafx-fxml 为JavaFX UI工具包定义FXML API。
javafx-base 定义JavaFXUI工具包的基本API,包括绑定、属性、集合和事件的API。
javafx-graphics 定义JavaFX UI工具包的核心场景API(如布局容器、应用程序生命周期、形状、转换、画布、输入、绘画、图像处理和效果),以及动画、css、并发、几何、打印和窗口化的API。
javafx-media 定义用于播放媒体和音频内容的API,作为JavaFX UI工具包的一部分,包括MediaView和MediaPlayer。
javafx-swing 为JavaFXUI工具包中包含的JavaFX/Swing互操作支持定义API,包括SwingNode(用于在JavaFX应用程序中嵌入Swing)和JFXPanel(用于在Swing应用程序中插入JavaFX)。
javafx-web 为JavaFX UI工具包中包含的WebView功能定义API。

简单说明一下:

javafx-controls :用于显示窗口、外观和场景 scene;

javafx-fxml:用于界面的布局。javaFX 可以使用 java 代码来对页面布局并且设置各种控件,当然也可以使用 fxml 来编写,使用 fxml 的好处是界面相关的布局、按钮等显示的控件可以在 fxml 里编写,而逻辑处理可以只由 java 代码来处理,这样分层比较清晰,写得代码比较少。如果你布局和控件也使用 java 代码编写,那么可以不必引入 javafx-fxml 模块。

javafx-media:用于播放视频、音频的 api 。如果你想使用 javaFX 开发一个视频播放器,那么就需要引入这个模块。

javafx-web:用于打开网页和显示本地的 html 。如果你想在你开发的应用里嵌入一个网页,比如百度,或者你想嵌入一个你本地的静态 html 页面,那么就需要引入这个模块。

二、方式一:通过 Maven 使用 javaFX

1.创建 JavaFx 类型的项目

(或者创建Maven 类型的项目也可以)

javaFX安装及使用

2.创建项目后修改 pom.xml

项目创建后 pom.xml 里默认只 引用了 JavaFx 的 javafx-controls 和 javafx-fxml 模块,如果需要用到其他模块可以根据自己需要加上。(我这里全部引用了,并且所有模块用了最新的 20.0.1 版本。)

下面是我的 pom.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>javafx</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>javafx</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- 定义可用于JavaFX UI工具包的UI控件、图表和外观。 -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>20.0.1</version>
        </dependency>

        <!-- 为JavaFX UI工具包定义FXML API。 -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>20.0.1</version>
        </dependency>

        <!-- 定义JavaFXUI工具包的基本API,包括绑定、属性、集合和事件的API。 -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-base</artifactId>
            <version>20.0.1</version>
        </dependency>

        <!-- 定义JavaFX UI工具包的核心场景API(如布局容器、应用程序生命周期、形状、转换、画布、输入、绘画、图像处理和效果),以及动画、css、并发、几何、打印和窗口化的API。 -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>20.0.1</version>
        </dependency>

        <!-- 定义用于播放媒体和音频内容的API,作为JavaFX UI工具包的一部分,包括MediaView和MediaPlayer。 -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-media</artifactId>
            <version>20.0.1</version>
        </dependency>

        <!-- 为JavaFXUI工具包中包含的JavaFX/Swing互操作支持定义API,包括SwingNode(用于在JavaFX应用程序中嵌入Swing)和JFXPanel(用于在Swing应用程序中插入JavaFX)。 -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-swing</artifactId>
            <version>20.0.1</version>
        </dependency>

        <!-- 为JavaFX UI工具包中包含的WebView功能定义API。 -->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-web</artifactId>
            <version>20.0.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.8</version>
                <executions>
                    <execution>
                        <!-- Default configuration for running with: mvn clean javafx:run -->
                        <id>default-cli</id>
                        <configuration>
                            <mainClass>com.example.javafx/com.example.javafx.HelloApplication</mainClass>
                            <launcher>app</launcher>
                            <jlinkZipName>app</jlinkZipName>
                            <jlinkImageName>app</jlinkImageName>
                            <noManPages>true</noManPages>
                            <stripDebug>true</stripDebug>
                            <noHeaderFiles>true</noHeaderFiles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

三、方式二:手动下载 javaFX sdk 并引入项目

1. javaFX下载

去 javaFX 官网 选择你要下载的版本和你电脑的操作类型,然后下载 SDK ,这里推荐下载 21.0.1 版本。

因为 21.0.1 是当前比较新且长期支持的 LTS 版本。

javaFX安装及使用

2. 环境变量配置

下载后的压缩安装包解压到你的安装目录里,然后新建环境变量PATH_TO_FX ,对应的值是 javaFx 安装包下对应的lib目录

javaFX安装及使用

3. IDEA中配置

(1)选择 file --> Project Structure --> Modules–> Dependencies,然后把 javaFX 安装包下对应的 lib目录里的所有模块 jar 包都依赖上。

javaFX安装及使用
javaFX安装及使用
(2)选择 Run --> Edit ConFiguratiobs

javaFX安装及使用
或者 idea 里右上角选择 Edit ConFiguratiobs

javaFX安装及使用

(3)选择 Modify options --> Add VM options

(不同版本的 idea 里 Add VM options 位置可能会略有不同)
javaFX安装及使用

路径填自己的 javaFX 安装路径:

--module-path "D:\Program\javaFx\javafx-sdk-21.0.1\lib" --add-modules javafx.controls,javafx.fxml,javafx-base,javafx-graphics,javafx-media,javafx-swing,javafx.web

javaFX安装及使用

点击 apply 和 OK 就能正常使用 javaFX 了

四、javaFX 示例

通过上面两种方式的任意一种你已经创建了一个 javaFX 项目,你可以在你的启动类里的 start 方法里写一些代码测试。

下面是我的启动类里的代码:


import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloApplication 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 + ", Java版本是 " + javaVersion + ".");
        Scene scene = new Scene(new StackPane(l), 640, 480);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch();
    }
}

输出效果:

javaFX安装及使用

其他示例可以参考我的文章:

javaFX WebView使用及打开网页

JavaFX实例:简单日历的实现

五、推荐 javaFX 几个学习的网址

JavaFX Documentation Project

JavaFX Tutorial

JavaFX Tutorial

JavaFX - 教程


另外,如果你对 javaFX 感兴趣,你可以看下我 gitgub上使用 javaFX 开发的一个应用: XTool

javaFX安装及使用

javaFX安装及使用


其他 javaFX 相关学习教程可参考:

JavaFX 入门
JavaFX的几个新特性,让Swing彻底过时
JavaFX FXML教程
JavaFX FXML教程
JavaFX FXML教程
JavaFX FXML
JavaFX入门(四):JavaFX布局(一)
最通俗易懂——JavaFX可视化窗口如何插入图片
快速创建基于JavaFX的桌面App
JavaFx的那些坑
JavaFX 加载 fxml 文件 方法三 在 Controller 对 Stage 进行操作
Stage窗口介绍,打开新窗口
场景切换
fxml场景切换
JavaFX - 实现管理多个Stage窗口切换及源码解析
JavaFx的Stage管理实现切换案例——登录页面
scenebuilder教程-与Controller类进行绑定、scenebuilder生成Controller类
JavaFx教程第四部分:CSS 样式
JavaFx之整合JFoenix(十四)
JavaFX绑定
JavaFx2.0—Binding
JavaFX属性与绑定
场景切换
场景切换
JavaFX: FXML嵌套和子Controller(Sub-Controller)
JavaFx嵌套控制器
使用 JavaFx 示例将文本和图像复制到剪贴板文章来源地址https://www.toymoban.com/news/detail-459198.html

到了这里,关于javaFX安装及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何简单的上手JavaFX17+?解决“缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序”等问题

    JavaFX是一个Java的一个ui库,但是自从java8以后,它很悲惨的被从OpenJdk中移除了,因此我们使用它来进行开发时,如果我们使用的是8以后的版本,经常会遇到一些问题。这里针对新手做一个简单的引导(悲,也许根本没新手来学吧) Fx的入门并不复杂,如果你学过其他的Ui库或

    2024年02月02日
    浏览(56)
  • JavaFx基础学习【五】:FXML布局文件使用

    目录 前言 一、介绍 二、简单体验 三、FXML标签元素 四、fx属性介绍 五、重写initialize(名字需要保持一致)方法 六、Scene Builder快速布局 如果你还没有看过前面的文章,可以通过以下链接快速前往学习: JavaFx基础学习【一】:基本认识_明天再去学习的博客-CSDN博客 JavaFx基础

    2024年02月12日
    浏览(38)
  • JAVAFX中ChoiceBox控件使用教程(用到scenebuilder)

    ChoiceBox控件负责选择合适的选项,单独使用JAVAFX很容易实现。但如果使用到scenebuiler,ChoiceBox控件操作则较为麻烦,为了学会这个控件的基本使用,我搜寻了很多资料,希望能帮到大家。控件效果展示如下。 首先放置控件至合适位置后,将生成的Controller类的代码复制至相应的

    2024年02月11日
    浏览(35)
  • 使用javafx,结合讯飞ai,搞了个ai聊天系统

    源代码地址:nanshaws/liaotianAi: 用javafx搞一个简单版ai对话 (github.com) 这个是我一个人写的,还请各位点个免费的start好吗0.0 第一步:先在讯飞ai那边获取接入的api 点进去,然后出现这个页面: 没有的话,就点击免费试用,有了的话,就点击服务管理: 用v2.0的和用3的都行,不

    2024年02月05日
    浏览(38)
  • JavaFx程序使用Gloun打包成Android平台App教程

    !!! 适合有Maven基础,对JavaFx或JavaFX移动端感兴趣的朋友 提示必须在Linux环境下进行,可以使用虚拟机 推荐使用CentOS系统进行,虚拟机硬盘大小推荐最少给30G 不要像我一样,搞一半又去给文件系统根目录扩大容量 如果容量不够可以看篇博客: https://blog.csdn.net/m0_58042817/article/detai

    2024年02月05日
    浏览(81)
  • 错误: 缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序

    这种情况一般是jdk11以上会出现,最简单直接的解决办法就是新建一个启动类来引导你的application类的运行。 在java8里这段代码可以直接运行,但是11以上会报错,此时新建一个启动类: 运行这个启动类就行了。

    2024年02月11日
    浏览(45)
  • 【JavaFx】1.JavaFx实现闹钟小程序

    专栏目录 1.JavaFx实现闹钟小程序 2.银行账户管理员 3.大数字 4.购物车 5.文本编辑器 6.乌龟图 JavaFx菜鸟教程 JavaFx哔哩哔哩教程 JavaFx是什么 JavaFx是java实现图形界面的一种方式,其他还有java的awt、swing,但是逐渐被淘汰。 awt -- swing -- JavaFx javafx可以实现逻辑和样式的分离,可以

    2024年02月20日
    浏览(56)
  • JavaFX入门和网格布局面板的使用,Dao层交互,舞台与场景切换以及其他控件的使用

    网格布局 将整个面板划分为若干个格子 , 每个格子的大小是一样的 , 每个格子中可以放置一个控件(布局) , 类似于表格的方式。在网格布局 中放入控件的时候 , 还需要指定位置。 我们将要排出这个布局 , 也就是登陆页面的优化版本 位置原理讲解 以网格布局的思维来拆分

    2024年02月04日
    浏览(42)
  • JavaFX环境配置(配jdk版本和javafx版本对应)

    因为jdk11之后就没有内置javafx了所以要自行下载配置到lib包 下载地址:JavaFX - Gluon (gluonhq.com)(要记住下载的路径)     方法1.在idea中新建JavaFx项目 创建好后发现爆红,是因为没在lib中导入javafx的jar包   找到对应路径选中其中的这几项然后导入即可,如果还有爆红则可能还需

    2024年02月04日
    浏览(41)
  • javafx应用程序线程异常Exception in thread “JavaFx Application Thread“

    前几天用javafx做小桌面应用程序出现了一个问题: 反复检查,最终确定报错的原因是UI刷新频率过快导致的 javafx提供了Platform.runLater用于解决该问题:  总结:需要高频调用方法使用Platform.runLater

    2024年02月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包