diff --git a/README.md b/README.md new file mode 100644 index 0000000..5ea55c4 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# JavaFX Maven Project + +Example Maven Project for a JavaFX Application. + +**Update**: Added profile fatjar + +**Update**: Added reporting to create a site (html documentation of project) + +**Update**: Java 21 is now fully supported + +This projects includes multiple plugins: +- Build of an App-Image using JPackage (Profile: image) +- Build of an fat jar (Profile: fatjar) +- Use of Maven Wrapper +- Static code analysis with PMD and Spotbugs +- Check of dependency updates during build +- JavaFX plugin to start application + +**Requirements** +To use this Template, all you need is a local Java Installation. +My current advice is to use a long term supported (LTS) version of either Java 17 or Java 21. + +**[Documentation in English](documentation/en/_Index.md)** + +**[Dokumentation in Deutsch](documentation/de/_Index.md)** + +**Important: ChatGPT was utilized to generate the documentation based on +predefined content specifications, as it represents the fastest way to produce +comprehensive documentation.** \ No newline at end of file diff --git a/injectfx-example/pom.xml b/injectfx-example/pom.xml index 48f7828..0040265 100644 --- a/injectfx-example/pom.xml +++ b/injectfx-example/pom.xml @@ -16,7 +16,7 @@ ${project.artifactId} ${project.artifactId} ${project.artifactId} - de.neitzel.injectfx.example.Main + de.neitzel.neitzelfx.injectfx.example.Main ${project.artifactId}-${project.version} diff --git a/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Address.java b/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Address.java new file mode 100644 index 0000000..12d9335 --- /dev/null +++ b/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Address.java @@ -0,0 +1,11 @@ +package de.neitzel.neitzelfx.component.example; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Address { + private String street; + private String city; +} \ No newline at end of file diff --git a/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/ExampleApp.java b/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/ExampleApp.java new file mode 100644 index 0000000..6ce3978 --- /dev/null +++ b/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/ExampleApp.java @@ -0,0 +1,36 @@ +package de.neitzel.neitzelfx.component.example; + +import de.neitzel.neitzelfx.component.ComponentLoader; +import javafx.application.Application; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + +public class ExampleApp extends Application { + + @Override + public void start(Stage primaryStage) throws Exception { + // Beispielmodel initialisieren + Address address = new Address(); + address.setStreet("Sample Street 1"); + address.setCity("Sample City"); + + Person person = new Person(); + person.setName("Max Mustermann"); + person.setAddress(address); + + // ComponentLoader verwenden + ComponentLoader loader = new ComponentLoader(); + Parent root = loader.load(person, "/person.fxml"); + + // Scene erstellen und anzeigen + Scene scene = new Scene(root); + primaryStage.setTitle("ComponentLoader Example"); + primaryStage.setScene(scene); + primaryStage.show(); + } + + public static void main(String[] args) { + launch(); + } +} \ No newline at end of file diff --git a/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Main.java b/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Main.java new file mode 100644 index 0000000..0e3df0d --- /dev/null +++ b/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Main.java @@ -0,0 +1,17 @@ +package de.neitzel.neitzelfx.component.example; + +import de.neitzel.neitzelfx.injectfx.example.JavaFXApp; + +/** + * Another Main class as workaround when the JavaFX Application ist started without + * taking care os Classloader Requirements of JavaFX. (Important when starting from inside NetBeans!) + */ +public class Main { + /** + * Additional main methode to start Application. + * @param args Commandline Arguments. + */ + public static void main(String[] args) { + ExampleApp.main(args); + } +} diff --git a/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Person.java b/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Person.java new file mode 100644 index 0000000..69babf2 --- /dev/null +++ b/injectfx-example/src/main/java/de/neitzel/neitzelfx/component/example/Person.java @@ -0,0 +1,11 @@ +package de.neitzel.neitzelfx.component.example; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Person { + private String name; + private Address address; +} diff --git a/injectfx-example/src/main/java/de/neitzel/injectfx/example/JavaFXApp.java b/injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/JavaFXApp.java similarity index 93% rename from injectfx-example/src/main/java/de/neitzel/injectfx/example/JavaFXApp.java rename to injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/JavaFXApp.java index 2d1ca44..91937be 100644 --- a/injectfx-example/src/main/java/de/neitzel/injectfx/example/JavaFXApp.java +++ b/injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/JavaFXApp.java @@ -1,4 +1,4 @@ -package de.neitzel.injectfx.example; +package de.neitzel.neitzelfx.injectfx.example; import javafx.application.Application; import javafx.fxml.FXMLLoader; diff --git a/injectfx-example/src/main/java/de/neitzel/injectfx/example/Main.java b/injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/Main.java similarity index 89% rename from injectfx-example/src/main/java/de/neitzel/injectfx/example/Main.java rename to injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/Main.java index 2343191..88a30fe 100644 --- a/injectfx-example/src/main/java/de/neitzel/injectfx/example/Main.java +++ b/injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/Main.java @@ -1,4 +1,4 @@ -package de.neitzel.injectfx.example; +package de.neitzel.neitzelfx.injectfx.example; /** * Another Main class as workaround when the JavaFX Application ist started without diff --git a/injectfx-example/src/main/java/de/neitzel/injectfx/example/MainWindow.java b/injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/MainWindow.java similarity index 93% rename from injectfx-example/src/main/java/de/neitzel/injectfx/example/MainWindow.java rename to injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/MainWindow.java index 27802f7..7888b5e 100644 --- a/injectfx-example/src/main/java/de/neitzel/injectfx/example/MainWindow.java +++ b/injectfx-example/src/main/java/de/neitzel/neitzelfx/injectfx/example/MainWindow.java @@ -1,4 +1,4 @@ -package de.neitzel.injectfx.example; +package de.neitzel.neitzelfx.injectfx.example; import javafx.event.ActionEvent; import javafx.fxml.FXML; diff --git a/injectfx-example/src/main/resources/address.fxml b/injectfx-example/src/main/resources/address.fxml new file mode 100644 index 0000000..ab51c1e --- /dev/null +++ b/injectfx-example/src/main/resources/address.fxml @@ -0,0 +1,17 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/injectfx-example/src/main/resources/de/neitzel/injectfx/example/MainWindow.fxml b/injectfx-example/src/main/resources/de/neitzel/neitzelfx/injectfx/example/MainWindow.fxml similarity index 87% rename from injectfx-example/src/main/resources/de/neitzel/injectfx/example/MainWindow.fxml rename to injectfx-example/src/main/resources/de/neitzel/neitzelfx/injectfx/example/MainWindow.fxml index 5e84972..bc561e9 100644 --- a/injectfx-example/src/main/resources/de/neitzel/injectfx/example/MainWindow.fxml +++ b/injectfx-example/src/main/resources/de/neitzel/neitzelfx/injectfx/example/MainWindow.fxml @@ -3,7 +3,7 @@ - +