JavaFX Run And Debug With IDEA

1,050 阅读1分钟

在 Jdk8 中,运行和调试 JavaFx 毫无难度,和平常的 Java 程序没有什么区别,但是,从 Jdk11 开始,JavaFx 作为独立模块从 Jdk 中分离了出来,运行和调试(尤其是调试)变得不那么容易,因此,博主在经历一番探索后,找到了一种十分简单的基于IDEA + Maven + JDK11运行和调试 JavaFx 程序的方法。

新建 Maven 项目

  1. 在 IDEA 中新建项目,选择Maven,勾选Create from archetype,选择javafx-maven-archetypes,如果没有,选择Add archetype添加,参数设置为:

    • GroupId:org.openjfx
    • artifactId:javafx-maven-archetypes
    • version:0.0.5 选择后点击next
  2. 设置项目名称、保存位置、GroupIdArtifactIdVersion 新建项目

  3. 设置 archetype artifactId,有两个可选项:javafx-archetype-fxmljavafx-archetype-simple,表示是否添加 fxml 支持,在这里我选取javafx-archetype-simple,然后新建javafx-version属性,定义为 15.0.1 在这里插入图片描述

  4. 点击 finish,等待下载

  5. 生成的 pom 文件为Here

  6. module-info文件是 Java9 引入的模块化系统,如下所示

    module com.civitasv {
        requires javafx.controls;
        exports com.civitasv;
    }
    
  7. 如果添加 fxml 支持,则需要添加 java-fxml 依赖并在 module-info 文件中添加:

    requires javafx.fxml;
    opens com.civitasv.controller to javafx.fxml;
    

    注:这是因为 FXML 类使用反射机制调用项目中的 controller,具体请查阅 Java 模块化机制。

运行和调试

此时可以直接点击运行和调试App

运行结果如下: 在这里插入图片描述

总结

创建 Java 模块化项目就可以了,不过还不知道其中的深层次原因。