如何在IntelliJ IDEA中从头开始创建JavaFX Maven项目?由于Java项目和JavaFx项目之间没有区别,我想打开一个包含Maven模块的专用JavaFX项目(从创建项目向导中选择JavaFX)。
答案 0 :(得分:51)
虽然我已经过时了,因为我最近有同样的问题而且有太多人告诉我要写我自己的pom文件等等。虽然这在技术上是正确的,如果你不是这样的话,它可能会引起更多的麻烦。小心。
我建议你:
让IntelliJ在此时为您完成工作。
至于编辑FXML文件,将IDEA链接到SceneBuilder。 Here是官方文档。但基本上是:
使用:右键单击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)
答案 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
因此,在上面的视频之后,我想推荐:
requires javafx.fxml;
requires javafx.controls;
opens sample;
答案 4 :(得分:1)
对于任何来这里的人。我认为最好的答案在于openjfx docs。它包含一个单独的JavaFX和InteliJ部分,选择“非模块化的Maven”部分。
我将在breif中描述步骤。
org.openjfx
,artifactId:javafx-maven-archetypes
,版本0.0.1)org.openjfx
ArtifactId hellojavafx
和Next。javafx-archetype-fxml
。javafx-version
和值:14
。HelloJavaFX
。InteliJ完成工作后,pom应该看起来像sample。
PS:
如果您采用这种方法来使事情顺利进行,则还需要遵循另外两个提示。
JavaFX 14需要Java 11或更高版本。
将javax maven插件版本更改为0.0.1到0.0.4,以避免出现诸如invalid flag --module-path
之类的错误。
为了更好地工作,请下载并安装