How can I open a JavaFX Maven project from scratch in IntelliJ IDEA? As there is no difference between a Java project and a JavaFx project, I want to open a dedicated JavaFX pro
For anyone coming here. I think the best answer lies on the openjfx docs. It contains a separate section for JavaFX & InteliJ, select the Non modular with Maven section.
Ill describe the steps in breif.
org.openjfx
, artifactId : javafx-maven-archetypes
, version 0.0.1 )org.openjfx
ArtifactId hellojavafx
and Next.javafx-archetype-fxml
.javafx-version
and value : 14
.HelloJavaFX
.Once InteliJ finish its work the pom should look like this sample.
PS :
Two more additional tips you need to follow if you follow this approach to get things going smoothly.
JavaFX 14 needs java 11 or newer.
Change the javax maven plugin version to 0.0.1 to 0.0.4 to avoid errors like invalid flag --module-path
.
Also to work better Download and install the
It takes me a couple of hours to find the right solution. Many thanks to this video and the author: https://www.youtube.com/watch?v=qn2tbftFjno
So, following the above video, I would like to recommend:
requires javafx.fxml;
requires javafx.controls;
opens sample;
Although dated I'm answering this because I had the same question recently and too many people told me to write my own pom file etc. While that is technically true, it can create more headaches if you aren't careful.
I recommend you:
Let IntelliJ do the work for you at this point.
As for editing FXML files link the IDEA to SceneBuilder. Here is the official documentation. But basically:
To Use: Right click on the FXML file and select "Open In SceneBuilder" (way down at the bottom)
And after all, a program doesn't compiled. So this video helped me: Configuring Maven For Java FX
in words: we need to move sample.fxml to /resources folder. And in Main.java write:
FXMLLoader loader=new FXMLLoader(getClass().getResource("/sample.fxml"));
This steps worked for me (Is a different process): 1. Create a maven project. 2. In the generated pom.xml add the following:
`<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>`
This adds a maven plugin for javafx (more info: https://github.com/javafx-maven-plugin/javafx-maven-plugin)