IDEA开发JavaFX

一、JavaFX简介:

    JavaFX是一个开源的下一代客户端应用平台,适用于基于Java构建的桌面、移动端和嵌入式系统。 它是许多个人和公司的共同努力的成果,目的是为开发丰富的客户端应用提供一个现代、高效、功能齐全的工具包。

二、开发环境:

开发工具:IntelijIdea,我选用的版本号为:2020.3.2。

JDK:  openjdk-16 ,开发fx  jdk版本必须11及其以上,我这里用的是jdk16。

SDK:  javafx-sdk-16 , sdk我用的是JavaFx最新发行版 JavaFX16,最新版目前已经到17了。

开发方式:

1、纯IDEA开发JavaFX。

2、Maven方式开发JavaFX(这个实际项目用的多)。

3、还可以通过gradle方式开发JavaFx(这里暂不介绍)。

参考资料:https://openjfx.cn/openjfx-docs/JavaFX官网。

三、纯IDEA开发JavaFX:

1、从官网下载JavaFX SDK最新发布版,比如JavaFX Windows x64 SDK  Version 16,点击Download,将下载后的sdk解压到指定目录下,比如D盘,如下图:


2、新建一个JavaFX项目,为项目起1个名字,如JavaFxDemo1,如下图:

3、默认Idea无法识别JavaFx项目,需要分别为项目添加jdk和sdk:

转至File -> Project Structure -> Project,并将jdk设置为16,sdk选择X或者更高版本:

若电脑上没有jdk的话,可以通过Download Jdk下载最新版的jdk,比如:openjdk-16:

4、配置sdk,选择Libraries,点击+号,点击Java:

找到你刚才下载的sdk保存位置,比如:D:\javafx-sdk-16\lib,进行添加:

添加完lib之后,Libraries是这个样子的:

5、配置VM options:

    配置完jdk和sdk后,Idea是能识别JavaFX项目了,编译也不报错,可是运行时会提示找不到运行时环境,这个时候需要配置Configurations,添加虚拟机选项,这个是这种方式的关键(官网上虽然也是这么介绍搭建的,但是漏了一些细节):

点击Edit  Configurations后打开的界面默认是没有VM options这个选项的,如下图:

    先不急着配这个,先去配置一个可以在将来的项目中使用的全局变量,转至 Preferences (File -> Settings) -> Appearance & Behavior -> Path Variables,并将变量的名称定义为PATH_TO_FX,然后浏览至JavaFX SDK的lib文件夹以设置其值,然后单击Apply,如下图:

    然后再回到刚才配置VM options的地方,点击Edit  Configurations,刚才说了默认是没有VM options这个选项的,而这个是这种方式的关键。首先你需要点击右侧的 Modify options,在弹出的下拉菜单中找到Add VM options 如下图:

添加完之后,这时会发现比原先面板多出来1个VM options的输入框,可以在里面输入VM options的配置参数了:

    在VM options输入框中输入参数(官方推荐):--module-path ${PATH_TO_FX} --add-modules javafx.controls,javafx.fxml

    然后点击OK,这时候再去运行Main程序就不会再报错了,并且程序运行完毕,会弹出一个框,类似于swing那种,当然你可以自定义里面的内容,实现自己想要展示的效果:

6、项目目录结构:

    项目默认由3部分组成,首先是程序的启动类Main,用于加载布局文件,启动窗口,sample.fxml用于存放程序中用到的布局控件,Controller控制器,用于监听控件各种点击事件的,可自定义。如下图所示


四、Maven方式开发JavaFX:

1、首先新建项目,选择maven方式,勾上Create from archetype,如果尚未安装JavaFX原型,请选择Add archetype...并设置groupId(org.openjfx),artifactId(javafx-maven-archetypes)和版本(0.0.5),然后按OK。如下图:

等插件安装完成后记得选中该插件,然后再点击下一步,如下图:

为新建的项目添加1个名字,如:JavaFxDemo2:

    最关键的一步来了,采用这种方式的特别注意,在弹出的面板中,要修改archetypeArtifactIdd的值,将默认的javafx-maven-archetypes修改成javafx-archetype-fxml(使用FXML时),或者javafx-archetype-simple(不使用FXML时)如下图:

做完上一步操作后,您还应该声明其版本号,我这里用的JavaFX版本为16,如下图:

    点击OK,Finish后,等待maven去下载依赖。待maven依赖下载好后,pom.xml如下表所示:本项目用到的jdk和JavaFX版本号皆为16,JavaFX插件版本号为0.0.5,核心依赖是javafx.controls和javafx.fxml)

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 http://maven.apache.org/maven-v4_0_0.xsd">

    4.0.0

    top.lyoun

    JavaFxDemo2

    1.0-SNAPSHOT

    

        UTF-8

        16

        16

    

    

        

            org.openjfx

            javafx-controls

            16

        

        

            org.openjfx

            javafx-fxml

            16

        

    

    

        

            

                org.apache.maven.plugins

                maven-compiler-plugin

                3.8.0

                

                    11

                

            

            

                org.openjfx

                javafx-maven-plugin

                0.0.5

                

                    top.lyoun.App

                

            

        

    


2、运行JavaFX程序:

    找到App程序启动类,运行App,程序运行成功之后,默认弹出如下界面,类似于swing,我们可以自定义里面的内容来展示:

3、项目目录结构:

    目录结构如下图所示,主要分为3大部分,分别是存放程序源代码的java目录,存放程序布局资源等的resources目录,和Maven依赖文件pom.xml。

    Java目录中存放称着启动类App和自定义的控制器Controller,该程序主要实现的就是在两个界面中来回跳转,响应了控件的点击事件,这里重点讲下module-info.java这个文件,这个java文件跟我们常看到的java类文件不同,你看他的文件名和类名并不相同,这个文件是用来做模块化开发的,你可以理解为是1个配置文件,用于将本程序用的到的所有modul,java程序,布局文件组合起来。由于FXML使用反射来访问模块中的控制器,因此已将其打开javafx.fxml。如下图所示:

requires即必要的,opens  to   打开...到....    exports  即输出到....

你可能感兴趣的:(IDEA开发JavaFX)