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

时间:2015-05-27 16:30:06

标签: java maven intellij-idea javafx

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

5 个答案:

答案 0 :(得分:51)

虽然我已经过时了,因为我最近有同样的问题而且有太多人告诉我要写我自己的pom文件等等。虽然这在技术上是正确的,如果你不是这样的话,它可能会引起更多的麻烦。小心。

我建议你:

  1. 像往常一样创建JavaFX项目。
  2. 确保项目视图(项目结构侧工具窗口中的下拉列表)设置为' 项目'或' ' (否则第4步中的选项将不可见)
  3. 然后打开并准备好右键单击项目文件夹
  4. 转到"添加框架支持..."。
  5. 选中Maven的复选框,然后点击"确定"。
  6. 让IntelliJ在此时为您完成工作。

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

    1. 安装Scene Builder
    2. 文件 - >设置 - >语言与框架 - > JavaFX的
    3. 指向exe文件。
    4. 使用:右键单击FXML文件并选择"在SceneBuilder中打开" (在底部向下)

答案 1 :(得分:3)

以下步骤对我有用(是一个不同的过程): 1.创建一个Maven项目。 2.在生成的pom.xml中添加以下内容:

class NetworkManager{
    var articleList = [Article]()

    func downloadJsonData() -> Void{
        let jsonUrl = "someUrl"

        guard let url = URL(string: jsonUrl) else { return }

        URLSession.shared.dataTask(with: url) { data, response, err in
            //check err
            //check response status
            guard let data = data else { return }

            do{
                let apiResults = try JSONDecoder().decode(ApiResults.self, from: data)
                //article list remains empty
                self.articleList = apiResults.articles
            } catch let err{
                print(err)
            }
        }.resume()
    }
}

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

  1. 在资源文件夹中创建sample.fxml
  2. 为sample.fxml创建控制器类并链接
  3. 享受!

答案 2 :(得分:2)

毕竟,程序无法编译。所以这段视频对我有帮助:Configuring Maven For Java FX

用词: 我们需要将sample.fxml移至/ resources文件夹。在Main.java中写:

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

答案 3 :(得分:1)

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

因此,在上面的视频之后,我想推荐:

  1. https://gluonhq.com/products/javafx/下载JavaFX SDK
  2. 提取压缩文件
  3. 从Intellij IDEA的起始页中,选择“为新项目配置/结构”
  4. 选择平台设置/全局库
  5. 选择加号(“ +”)按钮/ Java
  6. 在提取的zip文件中找到“ lib”文件夹,然后选择所有“ .jar”文件(“ src.zip”除外),然后单击“确定”。
  7. 为该库设置一个新名称,假设为“ javafx-whatever-version”,然后 申请/确定
  8. 照常创建JavaFX项目。
  9. 选择文件/项目结构...
  10. 记住从“项目设置/项目”中选择合适的Project SDK和项目语言级别
  11. 从“平台设置/全局库”中,右键单击库“ javafx-whatever-version”(已添加), 选择添加到模块... /确定
  12. 切换到“项目设置/模块”,选择“应用/确定”
  13. 返回您的项目经理,右键单击“ src” /New/module-info.java
  14. 在module-info.java的正文中添加新行:
requires javafx.fxml; 
requires javafx.controls; 
opens sample;
  1. 运行项目并享受乐趣!

答案 4 :(得分:1)

对于任何来这里的人。我认为最好的答案在于openjfx docs。它包含一个单独的JavaFX和InteliJ部分,选择“非模块化的Maven”部分。

我将在breif中描述步骤。

  1. 创建新的Maven项目。
  2. 选择从原型创建。
  3. 添加新的原型(groupid:org.openjfx,artifactId:javafx-maven-archetypes,版本0.0.1)
  4. 选择创建的原型,然后单击下一步。
  5. 提供组ID org.openjfx ArtifactId hellojavafx和Next。
  6. 将属性archtypeArtifactId的值更改为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之类的错误。 为了更好地工作,请下载并安装