HyperQing 2021-03-22

本文介绍不使用Gradle和Maven的原生方法。使用Gradle的版本见:https://www.yuque.com/go/doc/33347476 使用Gradle或Maven创建项目的方法见:https://openjfx.io/openjfx-docs/#IDE-Intellij

本文内容主要翻译自https://www.jetbrains.com/help/idea/javafx.html#download-javafx

IDEA支持JavaFX的代码完成,搜索,导航和重构,同时还集成了JavaFX Scene Builder,JavaFX应用打包适配和其他内容。

注意,从JDK 11起,JavaFX不再是JDK的一部分。如果你使用Java 11以上的版本,你需要下载开源的JavaFX SDK包,作为SDK的额外补充内容。

如果你使用Java 10或更早的版本,你可以直接通过正确的方法创建项目。

下载JavaFX SDK

  1. 下载JavaFX SDK,https://gluonhq.com/products/javafx/
  2. 解压文件,并放到合适的本地目录,例如:/Users/jetbrains/Desktop/javafx-sdk-12

确保JavaFX插件可用

为了能够在IDEA中使用JavaFX, JavaFX插件是必不可少的:

  1. Settings/Preferences 对话框中,选择 Plugins
  2. 切换到 Installed 标签并且确保 JavaFX 插件是启用的。如果插件是金庸的,勾选多选框进行启用,然后进入下一步。
  3. 应用所有的更改,并关闭对话框,根据提示重启IDE。

创建新项目

当你创建JavaFX时,IDEA会生成完整配置的简单应用。

  1. 启动IDEA,如果打开了欢迎页面 Welcome,选择创建新项目 New Project。其他情况下,从主菜单选择 File | New | Project 进行项目创建。
  2. 在新建项目向导 New Project 中,从左边的列表中选择 JavaFX
  3. Project SDK 列表中,选择你想在你项目中使用的JDK。如果JDK已经安装在你的电脑,但没出现在IDE中,选择 Add JDK 并指定JADK的路径即可。如果你没有装JDK,那就选择 Download JDK 进行下载。
  4. 在向导的下一步中,命名项目,例如就叫:JavaFX。
  5. 如果有必要的话,修改项目的默认路径后,点击完成 Finish 即可。

:::success 如果你没有在创建项目向导中找到JavaFX,请确认插件菜单中 Settings/Preferences | Plugins 是否正确安装并启用 JavaFX 插件。 :::

向项目添加JavaFX库

如果你使用的是JAVA 11或更新的版本,以下步骤是必须的。如果你使用的是Java 10或更早期的版本,直接运行项目即可,具体见这个部分:https://www.yuque.com/hyperqing/java/snxi7l#pVobM 原文: https://www.jetbrains.com/help/idea/javafx.html#run

  1. 从主菜单中,选择 File | Project Structure
  2. 打开 Libraries 部分,点击 + 加号并选择 Java
  3. 设置库文件夹的路径为JavaFX SDK的 lib 文件夹路径,例如:/Users/jetbrains/Desktop/javafx-sdk-12/lib
  4. 在选择模块 Choose Modules 对话框中,选择必要的模块并点击 OK 完成。
  5. 应用所有更改,并关闭项目结构对话框 Project Structure

添加VM选项

如果你使用的是JAVA 11或更新的版本,以下步骤是必须的。如果你使用的是Java 10或更早期的版本,直接运行项目即可,具体见这个部分:https://www.yuque.com/hyperqing/java/snxi7l#pVobM 原文: https://www.jetbrains.com/help/idea/javafx.html#run

  1. 从主菜单中选择 Run | Edit Configurations
  2. 从左边列表中选择 Application | Main
  3. 在更多选项 More options 列表中选择添加VM选项 Add VM options
  4. 在字段中,填入下面这些参数,记得要把下面示例路径 /path/to/javafx/sdk替换成你自己的JavaFX SDK的 lib 目录,例如:/Users/jetbrains/Desktop/javafx-sdk-12/lib

    1. --module-path /path/to/javafx/sdk --add-modules javafx.controls,javafx.fxml

    如果路径包含空格,记得用英文双引号包围路径。
    如果你正在使用JavaFX SDK 14 + OpenJDK 14 ,需要添加多一个参数。

    1. --add-exports javafx.graphics/com.sun.javafx.sg.prism=ALL-UNNAMED
  5. 应用所有更改,并关闭对话框。

运行应用

  1. 从主菜单中选择 Run | Run ‘Main’。IDE会编译你的代码。
  2. 当编译完成时,应用窗口会弹出。这意味着项目配置正确,并且每个部分都如常工作。因为我们没有添加任何元素到应用中,所以现在窗口是空白的。

:::success 关于如何通过Maven或Gradle创建模块化和非模块化的项目,参考这个文章https://openjfx.io/openjfx-docs/#IDE-Intellij。 :::

问题速查

参考原文
https://www.jetbrains.com/help/idea/javafx.html#troubleshoot

参考文献 https://openjfx.io/openjfx-docs/ https://www.jetbrains.com/help/idea/javafx.html