====== Java FX ====== The fastest way to create Java FX Applications - is to combine it with Eclipse RCP. == Fallpits == * Lookout, that your PATH contains the **JDK** not the JRE. Can see in IDE what is really used in Projects: {{http://i.imgur.com/nDgRHng.png}} * == IDE == The IDE is the E(fx)clipse. Eclipse with some plugins made for Java FX: http://efxclipse.bestsolution.at/index.html == Examples of different Projects == To create an Eclipse RCP project, based on Java FX follow this tutorials: http://wiki.eclipse.org/Efxclipse/Tutorials ==== Eclipse4 SWT App with single JavaFX Part embedded ==== **TARGET** \\ 1. add http://download.eclipse.org/efxclipse/updates-nightly/site to the TARGET! **PROJECT** \\ 2. create an RCP Project 3. add plugins and features to the **product** and to your **launch config** * at.bestsolution.efxclipse.runtime.javafx * at.bestsolution.efxclipse.runtime.osgi 4. add the following to make the RCP use at.bestsolution.osgi implementation, which will enable RCP and JavaFX communication pass **-Dosgi.framework.extensions=at.bestsolution.efxclipse.osgi** in your launch config's VM-Arguments Unfortunately, JavaFX was not written with OSGi in mind so there are various sources of error when running inside OSGi. These problems include the location of the JavaFX binaries in your Java installation and class loading issues because of OSGi's visibility rules. e(fx)clipse provides helper libraries for dealing with all of those problems and makes writing JavaFX applications on top of Eclipse Equinox feel as easy as it is with SWT and Swing. 5. set launch configurations "clear all" ===== Intellij Idea ===== ==== JavaFX project ==== Building JavaFx apps. You can start creating a JavaFX project. \\ The structure won't fit the gradle structure but this can be edited later. \\ {{https://i.imgur.com/DC1MChN.png}} To make Idea build the jar, when selecting **Build > Build Project** select "**Include in project build**" \\ the jar will be generated under "artifacts" \\ {{https://i.imgur.com/Dbj4MNC.png}} modify the project structure, to fit gradle structure \\ TODO add build.gradle \\ TODO gradle assemble gradle run ==== Gradle Project ==== It is better to use a Gradle project, because Gradle can be used completely headless, on the CI. And the result will be the same, when using the Gradle mode inside of the IDE. Here is a gradle-stub-project for a JavaFX app https://github.com/skipidar/EmptyProject-JavaFX-Idea-Gradle.git It was created by building rebuilding an Idea project to a maven structure \\ and then adding a build.gradle, \\ capable to build this project, \\ and then reimporting the project to idea as a gradle (not as JavaFX project) To use this project: - pull the gradle project - Go to FIle > Open > build.gradle - Configure the project, by specifying the location of your Java SDK |{{https://i.imgur.com/7aoNpFA.png?400}}|{{https://i.imgur.com/bWxXwNm.png?400}}| == Gradle Tools == The available Gradle-Tasks are available in IDEA via **View > Tool Window > Gradle** To update the project from build gradle use the sync button at the left part ofr the gradle tools {{https://i.imgur.com/e2eHugE.png}} To reimport the project form build.gradle use **File > Invalidate Caches / Restart** {{https://i.imgur.com/9NVRVsb.png?400}}