├── .gitignore ├── CommandLine ├── Modular │ ├── CLI │ │ ├── README.md │ │ └── hellofx │ │ │ └── src │ │ │ ├── hellofx │ │ │ └── HelloFX.java │ │ │ └── module-info.java │ ├── Gradle │ │ ├── README.md │ │ └── hellofx │ │ │ ├── build.gradle │ │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ ├── hellofx │ │ │ └── HelloFX.java │ │ │ └── module-info.java │ └── Maven │ │ ├── README.md │ │ └── hellofx │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ ├── module-info.java │ │ └── org │ │ │ └── openjfx │ │ │ ├── FXMLController.java │ │ │ └── MainApp.java │ │ └── resources │ │ └── org │ │ └── openjfx │ │ ├── scene.fxml │ │ └── styles.css └── Non-modular │ ├── CLI │ ├── README.md │ └── hellofx │ │ └── src │ │ └── hellofx │ │ ├── HelloFX.java │ │ └── Launcher.java │ ├── Gradle │ ├── README.md │ └── hellofx │ │ ├── build.gradle │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── src │ │ └── main │ │ └── java │ │ └── hellofx │ │ ├── HelloFX.java │ │ └── Launcher.java │ └── Maven │ ├── README.md │ └── hellofx │ ├── pom.xml │ └── src │ └── main │ └── java │ └── hellofx │ ├── HelloFX.java │ └── Launcher.java ├── HelloFX ├── CLI │ ├── README.md │ └── hellofx │ │ └── HelloFX.java ├── Gradle │ ├── README.md │ └── hellofx │ │ ├── build.gradle │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── src │ │ └── main │ │ └── java │ │ └── HelloFX.java └── Maven │ ├── README.md │ └── hellofx │ ├── pom.xml │ └── src │ └── main │ └── java │ └── HelloFX.java ├── IDE ├── Eclipse │ ├── Modular │ │ ├── Gradle │ │ │ ├── README.md │ │ │ └── hellofx │ │ │ │ ├── .classpath │ │ │ │ ├── .project │ │ │ │ ├── .settings │ │ │ │ ├── hellofx.launch │ │ │ │ ├── org.eclipse.buildship.core.prefs │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ ├── settings.gradle │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ ├── module-info.java │ │ │ │ └── org │ │ │ │ │ └── openjfx │ │ │ │ │ ├── FXMLController.java │ │ │ │ │ └── MainApp.java │ │ │ │ └── resources │ │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── scene.fxml │ │ │ │ └── styles.css │ │ ├── Java │ │ │ ├── HelloFX │ │ │ │ ├── .classpath │ │ │ │ ├── .project │ │ │ │ ├── .settings │ │ │ │ │ ├── modHelloFX.launch │ │ │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ │ └── src │ │ │ │ │ ├── module-info.java │ │ │ │ │ └── org │ │ │ │ │ └── openjfx │ │ │ │ │ ├── FXMLController.java │ │ │ │ │ ├── MainApp.java │ │ │ │ │ ├── scene.fxml │ │ │ │ │ └── styles.css │ │ │ └── README.md │ │ └── Maven │ │ │ ├── README.md │ │ │ └── hellofx │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings │ │ │ ├── hellofx.launch │ │ │ ├── org.eclipse.core.resources.prefs │ │ │ ├── org.eclipse.jdt.core.prefs │ │ │ └── org.eclipse.m2e.core.prefs │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ ├── module-info.java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ └── hellofx │ │ │ │ ├── App.java │ │ │ │ ├── PrimaryController.java │ │ │ │ └── SecondaryController.java │ │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ └── hellofx │ │ │ ├── primary.fxml │ │ │ ├── secondary.fxml │ │ │ └── styles.css │ └── Non-Modular │ │ ├── Gradle │ │ ├── README.md │ │ └── hellofx │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings │ │ │ ├── hellofx.launch │ │ │ ├── org.eclipse.buildship.core.prefs │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ ├── build.gradle │ │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── FXMLController.java │ │ │ │ └── MainApp.java │ │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ ├── scene.fxml │ │ │ └── styles.css │ │ ├── Java │ │ ├── README.md │ │ └── hellofx │ │ │ ├── .classpath │ │ │ ├── .project │ │ │ ├── .settings │ │ │ ├── HelloFX.launch │ │ │ └── org.eclipse.jdt.core.prefs │ │ │ └── src │ │ │ └── hellofx │ │ │ ├── Controller.java │ │ │ ├── Main.java │ │ │ └── hellofx.fxml │ │ └── Maven │ │ ├── README.md │ │ └── hellofx │ │ ├── .classpath │ │ ├── .project │ │ ├── .settings │ │ ├── hellofx.launch │ │ ├── org.eclipse.core.resources.prefs │ │ ├── org.eclipse.jdt.core.prefs │ │ └── org.eclipse.m2e.core.prefs │ │ ├── pom.xml │ │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ └── hellofx │ │ │ │ ├── App.java │ │ │ │ ├── PrimaryController.java │ │ │ │ └── SecondaryController.java │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ └── hellofx │ │ │ ├── primary.fxml │ │ │ ├── secondary.fxml │ │ │ └── styles.css │ │ └── test │ │ └── java │ │ └── org │ │ └── openjfx │ │ └── hellofx │ │ └── AppTest.java ├── IntelliJ │ ├── Modular │ │ ├── Gradle │ │ │ ├── README.md │ │ │ └── hellofx │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ ├── settings.gradle │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ ├── module-info.java │ │ │ │ └── org │ │ │ │ │ └── openjfx │ │ │ │ │ ├── FXMLController.java │ │ │ │ │ └── MainApp.java │ │ │ │ └── resources │ │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── scene.fxml │ │ │ │ └── styles.css │ │ ├── Java │ │ │ ├── README.md │ │ │ └── hellofx │ │ │ │ ├── .idea │ │ │ │ ├── encodings.xml │ │ │ │ ├── misc.xml │ │ │ │ ├── modules.xml │ │ │ │ └── runConfigurations │ │ │ │ │ └── runHelloFX.xml │ │ │ │ └── src │ │ │ │ ├── module-info.java │ │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── FXMLController.java │ │ │ │ ├── MainApp.java │ │ │ │ ├── scene.fxml │ │ │ │ └── styles.css │ │ └── Maven │ │ │ ├── README.md │ │ │ └── hellofx │ │ │ ├── .idea │ │ │ ├── compiler.xml │ │ │ ├── encodings.xml │ │ │ └── misc.xml │ │ │ ├── hellofx.iml │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ ├── module-info.java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── App.java │ │ │ │ ├── PrimaryController.java │ │ │ │ └── SecondaryController.java │ │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ ├── primary.fxml │ │ │ ├── secondary.fxml │ │ │ └── styles.css │ └── Non-Modular │ │ ├── Gradle │ │ ├── README.md │ │ └── hellofx │ │ │ ├── .idea │ │ │ ├── encodings.xml │ │ │ ├── gradle.xml │ │ │ └── misc.xml │ │ │ ├── build.gradle │ │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── FXMLController.java │ │ │ │ └── MainApp.java │ │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ ├── scene.fxml │ │ │ └── styles.css │ │ ├── Java │ │ ├── README.md │ │ └── hellofx │ │ │ ├── .idea │ │ │ ├── compiler.xml │ │ │ ├── description.html │ │ │ ├── encodings.xml │ │ │ ├── gradle.xml │ │ │ ├── misc.xml │ │ │ ├── modules.xml │ │ │ ├── runConfigurations │ │ │ │ └── Main.xml │ │ │ ├── uiDesigner.xml │ │ │ └── vcs.xml │ │ │ ├── hellofx.iml │ │ │ └── src │ │ │ └── hellofx │ │ │ ├── Controller.java │ │ │ ├── Main.java │ │ │ └── hellofx.fxml │ │ └── Maven │ │ ├── README.md │ │ └── hellofx │ │ ├── .idea │ │ ├── compiler.xml │ │ ├── encodings.xml │ │ └── misc.xml │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── openjfx │ │ │ ├── App.java │ │ │ ├── PrimaryController.java │ │ │ └── SecondaryController.java │ │ └── resources │ │ └── org │ │ └── openjfx │ │ ├── primary.fxml │ │ ├── secondary.fxml │ │ └── styles.css ├── NetBeans │ ├── Modular │ │ ├── Gradle │ │ │ ├── README.md │ │ │ └── hellofx │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ ├── settings.gradle │ │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ ├── module-info.java │ │ │ │ └── org │ │ │ │ │ └── openjfx │ │ │ │ │ ├── FXMLController.java │ │ │ │ │ └── MainApp.java │ │ │ │ └── resources │ │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── scene.fxml │ │ │ │ └── styles.css │ │ ├── Java │ │ │ ├── HelloFX │ │ │ │ ├── build.xml │ │ │ │ ├── nbproject │ │ │ │ │ ├── build-impl.xml │ │ │ │ │ ├── genfiles.properties │ │ │ │ │ ├── private │ │ │ │ │ │ └── private.properties │ │ │ │ │ ├── project.properties │ │ │ │ │ └── project.xml │ │ │ │ └── src │ │ │ │ │ └── hellofx │ │ │ │ │ └── classes │ │ │ │ │ ├── module-info.java │ │ │ │ │ └── org │ │ │ │ │ └── openjfx │ │ │ │ │ ├── FXMLController.java │ │ │ │ │ ├── MainApp.java │ │ │ │ │ ├── scene.fxml │ │ │ │ │ └── styles.css │ │ │ └── README.md │ │ └── Maven │ │ │ ├── README.md │ │ │ └── hellofx │ │ │ ├── nbactions.xml │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ ├── module-info.java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ └── hellofx │ │ │ │ ├── App.java │ │ │ │ ├── PrimaryController.java │ │ │ │ └── SecondaryController.java │ │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ ├── primary.fxml │ │ │ ├── secondary.fxml │ │ │ └── styles.css │ └── Non-Modular │ │ ├── Gradle │ │ ├── README.md │ │ └── hellofx │ │ │ ├── build.gradle │ │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── FXMLController.java │ │ │ │ └── MainApp.java │ │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ ├── scene.fxml │ │ │ └── styles.css │ │ ├── Java │ │ ├── README.md │ │ └── hellofx │ │ │ ├── build.xml │ │ │ ├── manifest.mf │ │ │ ├── nbproject │ │ │ ├── build-impl.xml │ │ │ ├── genfiles.properties │ │ │ ├── private │ │ │ │ └── private.xml │ │ │ ├── project.properties │ │ │ └── project.xml │ │ │ └── src │ │ │ └── hellofx │ │ │ ├── Controller.java │ │ │ ├── Main.java │ │ │ └── hellofx.fxml │ │ └── Maven │ │ ├── README.md │ │ └── hellofx │ │ ├── nbactions.xml │ │ ├── pom.xml │ │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── openjfx │ │ │ └── hellofx │ │ │ ├── App.java │ │ │ ├── PrimaryController.java │ │ │ └── SecondaryController.java │ │ └── resources │ │ └── org │ │ └── openjfx │ │ └── hellofx │ │ ├── primary.fxml │ │ ├── secondary.fxml │ │ └── styles.css └── VSCode │ ├── Modular │ ├── Gradle │ │ ├── README.md │ │ ├── hellofx │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── settings.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── java │ │ │ │ ├── module-info.java │ │ │ │ └── org │ │ │ │ │ └── openjfx │ │ │ │ │ ├── FXMLController.java │ │ │ │ │ └── MainApp.java │ │ │ │ └── resources │ │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── scene.fxml │ │ │ │ └── styles.css │ │ └── run.png │ └── Maven │ │ ├── README.md │ │ ├── hellofx │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ ├── module-info.java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ └── hellofx │ │ │ │ ├── App.java │ │ │ │ ├── PrimaryController.java │ │ │ │ └── SecondaryController.java │ │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ └── hellofx │ │ │ ├── primary.fxml │ │ │ ├── secondary.fxml │ │ │ └── styles.css │ │ └── run.png │ └── Non-Modular │ ├── Gradle │ ├── README.md │ ├── hellofx │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── settings.gradle │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── openjfx │ │ │ │ ├── FXMLController.java │ │ │ │ └── MainApp.java │ │ │ └── resources │ │ │ └── org │ │ │ └── openjfx │ │ │ ├── scene.fxml │ │ │ └── styles.css │ └── run.png │ ├── Java │ ├── README.md │ └── hellofx │ │ ├── .vscode │ │ ├── launch.json │ │ └── settings.json │ │ └── src │ │ └── hellofx │ │ ├── Controller.java │ │ ├── Main.java │ │ └── hellofx.fxml │ └── Maven │ ├── README.md │ ├── hellofx │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── org │ │ │ └── openjfx │ │ │ └── hellofx │ │ │ ├── App.java │ │ │ ├── PrimaryController.java │ │ │ └── SecondaryController.java │ │ └── resources │ │ └── org │ │ └── openjfx │ │ └── hellofx │ │ ├── primary.fxml │ │ ├── secondary.fxml │ │ └── styles.css │ └── run.png ├── LICENSE ├── README.md └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | # Gradle 2 | .gradle/ 3 | target/ 4 | 5 | # Maven 6 | build/ 7 | 8 | # Eclipse 9 | bin/ 10 | 11 | # IntelliJ IDEA 12 | .idea/ 13 | *.iml 14 | 15 | MacOS 16 | .DS_Store 17 | -------------------------------------------------------------------------------- /CommandLine/Modular/CLI/README.md: -------------------------------------------------------------------------------- 1 | # samples 2 | 3 | JavaFX samples to run with different options and build tools. 4 | 5 | Download [JDK 17 or later](http://jdk.java.net/) for your operating system. 6 | Make sure `JAVA_HOME` is properly set to the JDK installation directory. 7 | 8 | Download [JavaFX SDK](https://gluonhq.com/products/javafx/) for your operating 9 | system and unzip to a desired location. 10 | 11 | Download [JavaFX jmods](https://gluonhq.com/products/javafx/) for your operating 12 | system and unzip to a desired location. 13 | 14 | ## Modular - CLI 15 | 16 | `hellofx` sample modular project to run on command line, without build tools 17 | 18 | ### Linux / Mac 19 | 20 | If you run on Linux or Mac, follow these steps: 21 | 22 | cd CommandLine/Modular/CLI/hellofx 23 | export PATH_TO_FX=path/to/javafx-sdk/lib 24 | export PATH_TO_FX_MODS=path/to/javafx-jmods 25 | javac --module-path $PATH_TO_FX -d mods/hellofx $(find src -name "*.java") 26 | 27 | To run the project: 28 | 29 | java --module-path $PATH_TO_FX:mods -m hellofx/hellofx.HelloFX 30 | 31 | To create and run a custom JRE: 32 | 33 | $JAVA_HOME/bin/jlink --module-path $PATH_TO_FX_MODS:mods --add-modules hellofx --output hellofx 34 | hellofx/bin/java -m hellofx/hellofx.HelloFX 35 | 36 | ### Windows 37 | 38 | If you run on Windows, follow these steps: 39 | 40 | cd CommandLine\Modular\CLI\hellofx 41 | set PATH_TO_FX="path\to\javafx-sdk\lib" 42 | set PATH_TO_FX_MODS="path\to\javafx-jmods" 43 | dir /s /b src\*.java > sources.txt & javac --module-path %PATH_TO_FX% -d mods/hellofx @sources.txt & del sources.txt 44 | 45 | To run the project: 46 | 47 | java --module-path "%PATH_TO_FX%;mods" -m hellofx/hellofx.HelloFX 48 | 49 | To create and run a custom JRE: 50 | 51 | jlink --module-path "%PATH_TO_FX_MODS%;mods" --add-modules hellofx --output hellofx 52 | hellofx\bin\java -m hellofx/hellofx.HelloFX 53 | -------------------------------------------------------------------------------- /CommandLine/Modular/CLI/hellofx/src/hellofx/HelloFX.java: -------------------------------------------------------------------------------- 1 | package hellofx; 2 | 3 | import javafx.application.Application; 4 | import javafx.scene.Scene; 5 | import javafx.scene.control.Label; 6 | import javafx.scene.layout.StackPane; 7 | import javafx.stage.Stage; 8 | 9 | 10 | public class HelloFX extends Application { 11 | 12 | @Override 13 | public void start(Stage stage) { 14 | String javaVersion = System.getProperty("java.version"); 15 | String javafxVersion = System.getProperty("javafx.version"); 16 | Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + "."); 17 | Scene scene = new Scene(new StackPane(l), 640, 480); 18 | stage.setScene(scene); 19 | stage.show(); 20 | } 21 | 22 | public static void main(String[] args) { 23 | launch(); 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /CommandLine/Modular/CLI/hellofx/src/module-info.java: -------------------------------------------------------------------------------- 1 | module hellofx { 2 | requires javafx.controls; 3 | 4 | exports hellofx; 5 | } -------------------------------------------------------------------------------- /CommandLine/Modular/Gradle/README.md: -------------------------------------------------------------------------------- 1 | # samples 2 | 3 | JavaFX samples to run with different options and build tools. 4 | 5 | Download [JDK 17 or later](http://jdk.java.net/) for your operating system. 6 | Make sure `JAVA_HOME` is properly set to the JDK installation directory. 7 | 8 | ## Modular - Gradle 9 | 10 | `hellofx` sample modular project to run with Gradle 11 | 12 | ### Linux / Mac 13 | 14 | If you run on Linux or Mac, follow these steps: 15 | 16 | cd CommandLine/Modular/Gradle/hellofx 17 | 18 | To run the project: 19 | 20 | ./gradlew run 21 | 22 | To create custom JRE you can use the `org.beryx.jlink` plugin: 23 | 24 | ./gradlew jlink 25 | build/image/bin/hellofx 26 | 27 | ### Windows 28 | 29 | If you run on Windows, follow these steps: 30 | 31 | cd CommandLine\Modular\Gradle\hellofx 32 | 33 | To run the project: 34 | 35 | gradlew run 36 | 37 | To create custom JRE with the `org.beryx.jlink` plugin: 38 | 39 | gradlew jlink 40 | build\image\bin\hellofx 41 | -------------------------------------------------------------------------------- /CommandLine/Modular/Gradle/hellofx/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'application' 3 | id 'org.openjfx.javafxplugin' version '0.1.0' 4 | id 'org.beryx.jlink' version '2.26.0' 5 | } 6 | 7 | repositories { 8 | mavenCentral() 9 | } 10 | 11 | javafx { 12 | version = "21" 13 | modules = [ 'javafx.controls' ] 14 | } 15 | 16 | application { 17 | mainClass = "hellofx.HelloFX" 18 | mainModule = "hellofx" 19 | } 20 | 21 | 22 | jlink { 23 | options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages'] 24 | launcher { 25 | name = 'hellofx' 26 | } 27 | } -------------------------------------------------------------------------------- /CommandLine/Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openjfx/samples/605de7f9fac6b595f787c9d718aa6e523aa1b24f/CommandLine/Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /CommandLine/Modular/Gradle/hellofx/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /CommandLine/Modular/Gradle/hellofx/src/main/java/hellofx/HelloFX.java: -------------------------------------------------------------------------------- 1 | package hellofx; 2 | 3 | import javafx.application.Application; 4 | import javafx.scene.Scene; 5 | import javafx.scene.control.Label; 6 | import javafx.scene.layout.StackPane; 7 | import javafx.stage.Stage; 8 | 9 | 10 | public class HelloFX extends Application { 11 | 12 | @Override 13 | public void start(Stage stage) { 14 | String javaVersion = System.getProperty("java.version"); 15 | String javafxVersion = System.getProperty("javafx.version"); 16 | Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + "."); 17 | Scene scene = new Scene(new StackPane(l), 640, 480); 18 | stage.setScene(scene); 19 | stage.show(); 20 | } 21 | 22 | public static void main(String[] args) { 23 | launch(); 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /CommandLine/Modular/Gradle/hellofx/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module hellofx { 2 | requires javafx.controls; 3 | 4 | exports hellofx; 5 | } -------------------------------------------------------------------------------- /CommandLine/Modular/Maven/README.md: -------------------------------------------------------------------------------- 1 | # samples 2 | 3 | JavaFX samples to run with different options and build tools. 4 | 5 | Download [JDK 17 or later](http://jdk.java.net/) for your operating system. 6 | Make sure `JAVA_HOME` is properly set to the JDK installation directory. 7 | 8 | ## Modular - Maven 9 | 10 | `hellofx` sample modular project to run with Maven 11 | 12 | ### Linux / Mac 13 | 14 | If you run on Linux or Mac, follow these steps: 15 | 16 | cd CommandLine/Modular/Maven/hellofx 17 | mvn clean javafx:run 18 | 19 | To create and run a custom JRE: 20 | 21 | cd CommandLine/Modular/Maven/hellofx 22 | mvn clean javafx:jlink 23 | target/hellofx/bin/launcher 24 | 25 | ### Windows 26 | 27 | If you run on Windows, follow these steps: 28 | 29 | cd CommandLine\Modular\Maven\hellofx 30 | mvn clean javafx:run 31 | 32 | To create and run a custom JRE: 33 | 34 | cd CommandLine/Modular/Maven/hellofx 35 | mvn clean javafx:jlink 36 | target\hellofx\bin\launcher -------------------------------------------------------------------------------- /CommandLine/Modular/Maven/hellofx/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | org.openjfx 6 | hellofx 7 | 1.0-SNAPSHOT 8 | jar 9 | 10 | hellofx 11 | 12 | 13 | UTF-8 14 | 17 15 | 21 16 | 0.0.8 17 | 18 | 19 | 20 | 21 | Your Organisation 22 | 23 | 24 | 25 | 26 | org.openjfx 27 | javafx-controls 28 | ${javafx.version} 29 | 30 | 31 | org.openjfx 32 | javafx-fxml 33 | ${javafx.version} 34 | 35 | 36 | 37 | 38 | 39 | org.apache.maven.plugins 40 | maven-compiler-plugin 41 | 3.11.0 42 | 43 | 44 | org.openjfx 45 | javafx-maven-plugin 46 | ${javafx.maven.plugin.version} 47 | 48 | hellofx 49 | launcher 50 | hellofx/org.openjfx.MainApp 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /CommandLine/Modular/Maven/hellofx/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | module hellofx { 2 | requires javafx.controls; 3 | requires javafx.fxml; 4 | 5 | opens org.openjfx to javafx.fxml; 6 | exports org.openjfx; 7 | } -------------------------------------------------------------------------------- /CommandLine/Modular/Maven/hellofx/src/main/java/org/openjfx/FXMLController.java: -------------------------------------------------------------------------------- 1 | package org.openjfx; 2 | 3 | import javafx.event.ActionEvent; 4 | import javafx.fxml.FXML; 5 | import javafx.scene.control.Label; 6 | 7 | public class FXMLController { 8 | 9 | @FXML 10 | private Label label; 11 | 12 | @FXML 13 | private void handleButtonAction(ActionEvent event) { 14 | System.out.println("You clicked me!"); 15 | label.setText("Hello World!"); 16 | } 17 | 18 | public void initialize() { 19 | // TODO 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /CommandLine/Modular/Maven/hellofx/src/main/java/org/openjfx/MainApp.java: -------------------------------------------------------------------------------- 1 | package org.openjfx; 2 | 3 | import javafx.application.Application; 4 | import javafx.fxml.FXMLLoader; 5 | import javafx.scene.Parent; 6 | import javafx.scene.Scene; 7 | import javafx.stage.Stage; 8 | 9 | 10 | public class MainApp extends Application { 11 | 12 | @Override 13 | public void start(Stage stage) throws Exception { 14 | Parent root = FXMLLoader.load(getClass().getResource("scene.fxml")); 15 | 16 | Scene scene = new Scene(root); 17 | scene.getStylesheets().add(getClass().getResource("styles.css").toExternalForm()); 18 | 19 | stage.setTitle("JavaFX and Maven"); 20 | stage.setScene(scene); 21 | stage.show(); 22 | } 23 | 24 | public static void main(String[] args) { 25 | launch(args); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /CommandLine/Modular/Maven/hellofx/src/main/resources/org/openjfx/scene.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |