如何在IntelliJ IDEA中创建一个JavaFX Maven项目?

25

我如何在IntelliJ IDEA中从头开始打开一个JavaFX的Maven项目?由于Java项目和JavaFX项目没有区别,因此我想要打开一个专门包含Maven模块的JavaFX项目(使用创建项目向导中的“选择JavaFX”)。

6个回答

81

尽管这篇文章有些过时了,但我还是回答一下,因为最近我也有同样的问题,太多人让我自己编写pom文件等。虽然从技术上讲这是正确的,但如果不小心处理,可能会带来更多麻烦。

我建议你:

  1. 像平常一样创建一个JavaFX项目。
  2. 确保项目视图(项目结构侧边栏中的下拉菜单)设置为“Project”或“Packages”(否则第4步的选项将不可见)。
  3. 然后,在准备好打开项目后,右键单击项目文件夹。
  4. 选择“添加框架支持...”。
  5. 勾选Maven复选框,然后点击“OK”。

此时,让IntelliJ为您完成工作。

至于编辑FXML文件,请将IDEA链接到SceneBuilder。这里是官方文档。但基本上如下:

  1. 安装Scene Builder
  2. File -> Settings -> Languages & Frameworks -> JavaFX
  3. 指向exe文件。

使用方法:右键单击FXML文件,选择“在SceneBuilder中打开”(在底部)。


12

最后,一个程序没有编译成功。所以这个视频帮助了我:配置Java FX的Maven

简言之: 我们需要将sample.fxml移动到/resources文件夹中。在Main.java中编写:

FXMLLoader loader=new FXMLLoader(getClass().getResource("/sample.fxml"));

兄弟,我把.fxml文件移动到了Maven资源文件夹,但它仍然无法获取。 - Tanvir

4
这些步骤适用于我,是一个不同的过程: 1. 创建一个Maven项目。 2. 在生成的pom.xml文件中添加以下内容:
`<build>
        <plugins>
            <plugin>
                <groupId>com.zenjava</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>8.7.0</version>
                <configuration>
                    <mainClass>your.package.with.mainclass</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>`

这将为JavaFX添加一个Maven插件(更多信息请参见:https://github.com/javafx-maven-plugin/javafx-maven-plugin

  1. 在资源文件夹中创建您的sample.fxml
  2. 为sample.fxml创建您的控制器类并进行关联
  3. 享受吧!

2

我花了几个小时才找到了正确的解决方案。非常感谢这个视频和作者:https://www.youtube.com/watch?v=qn2tbftFjno

因此,根据上述视频,我想推荐以下步骤:

  1. https://gluonhq.com/products/javafx/下载JavaFX SDK。
  2. 解压缩zip文件。
  3. 从Intellij IDEA的起始页面中选择Configure/Structure for New Projects。
  4. 选择Platform Settings/Global Libraries。
  5. 选择加号(“+”)按钮/Java。
  6. 在您解压缩的zip文件中找到“lib”文件夹,并选择所有“.jar”文件(除了“src.zip”),然后选择OK。
  7. 为库设置一个新名称,比如说“javafx-whatever-version”,然后点击Apply/OK。
  8. 像往常一样创建一个JavaFX项目。
  9. 选择File/Project Structure...
  10. 从Project Settings/Project中,记得选择合适的Project SDK和Project language level。
  11. 从Platform Settings/Global Libraries中,右键单击已添加的库“javafx-whatever-version”,选择Add to modules.../OK。
  12. 切换到Project Settings/Modules,选择Apply/OK。
  13. 回到您的项目管理器,右键单击“src”/New/module-info.java。
  14. 在module-info.java的主体中添加新行:
requires javafx.fxml; 
requires javafx.controls; 
opens sample;

运行项目并享受!

这似乎是针对一个不基于Maven的项目有用的答案。我怀疑,如果涉及到Maven,答案可能会有所不同,因为Idea Maven集成将已经添加所需的JavaFX库到项目的编译路径中(但不一定添加到运行时java模块系统模块路径)。也许在这种情况下,答案会类似于IntelliJ无法识别使用OpenJDK 11的JavaFX 11的答案。 - jewelsea
我的错误,谢谢@jewelsea的建议。无论如何,我希望它能够以某种方式帮助到某个人。 - Cong
这是一个有用的配方,可以在Idea中设置JavaFX项目,它会帮助某些人 :-) - jewelsea

1

对于任何人来说,我认为最好的答案在openjfx文档上。它包含一个JavaFX和InteliJ的单独部分,选择使用Maven的非模块化部分。

我将简要描述步骤。

  1. 创建新的Maven项目。
  2. 选择从archetype创建。
  3. 添加新的archetype(groupid:org.openjfx,artifactId:javafx-maven-archetypes,版本0.0.1)
  4. 选择已创建的archetype并点击下一步。
  5. 提供groupId org.openjfx ArtifactId hellojavafx并点击下一步。
  6. 更改属性archetypeArtifactId值为javafx-archetype-fxml
  7. 添加JavaFX版本的新属性:属性javafx-version,值:14
  8. 最后给项目起一个名字,例如HelloJavaFX
  9. 现在点击完成并等待InteliJ构建项目。
一旦InteliJ完成其工作,pom文件应该看起来像这样sample
PS: 如果您采用此方法使事情顺利进行,还需要遵循另外两个提示。 JavaFX 14需要java 11或更新版本。 将javax maven插件版本从0.0.1更改为0.0.4,以避免出现类似于“invalid flag --module-path”的错误。 此外,为了更好地工作,请下载并安装。

0

如果您已经安装了Maven,下面是确切的用户指南来创建JavaFX项目:

  1. 打开IntelliJ

  2. 在其他Maven项目的文件夹中创建JavaFX项目。

  3. 在IntelliJ中单击文件夹(顶部的项目)并选择运行Maven和打包。

  4. 然后,如果您需要JavaFX插件,请再次单击项目文件夹,运行Maven、插件,然后进行选择。我需要:JavaFX:jlink。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接