From 3a445352870ea6a0274a4c9719888462b098746c Mon Sep 17 00:00:00 2001 From: Alnotz Date: Sat, 8 Jul 2023 19:09:36 +0200 Subject: [PATCH] New project --- .gitignore | 38 ++++++ .idea/encodings.xml | 7 + .idea/misc.xml | 14 ++ .idea/uiDesigner.xml | 124 ++++++++++++++++++ .idea/vcs.xml | 6 + .idea/workspace.xml | 95 ++++++++++++++ pom.xml | 52 ++++++++ src/main/java/fr/alnotz/SystemInfo.java | 13 ++ .../java/fr/alnotz/control/MainControl.java | 42 ++++++ .../java/fr/alnotz/control/package-info.java | 4 + src/main/java/fr/alnotz/gui/App.java | 52 ++++++++ src/main/java/fr/alnotz/gui/package-info.java | 4 + src/main/java/module-info.java | 13 ++ .../resources/fr/alnotz/style/mainStyle.css | 8 ++ .../resources/fr/alnotz/view/mainView.fxml | 17 +++ 15 files changed, 489 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 pom.xml create mode 100644 src/main/java/fr/alnotz/SystemInfo.java create mode 100644 src/main/java/fr/alnotz/control/MainControl.java create mode 100644 src/main/java/fr/alnotz/control/package-info.java create mode 100644 src/main/java/fr/alnotz/gui/App.java create mode 100644 src/main/java/fr/alnotz/gui/package-info.java create mode 100644 src/main/java/module-info.java create mode 100644 src/main/resources/fr/alnotz/style/mainStyle.css create mode 100644 src/main/resources/fr/alnotz/view/mainView.fxml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..82dbec8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..9a21084 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1688292143465 + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..5a08d6e --- /dev/null +++ b/pom.xml @@ -0,0 +1,52 @@ + + 4.0.0 + fr.alnotz + jfxui + 0.1 + + UTF-8 + 17 + 17 + + + + org.openjfx + javafx-controls + 17.0.6 + + + org.openjfx + javafx-fxml + 17.0.6 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + 17 + + + + org.openjfx + javafx-maven-plugin + 0.0.8 + + + + + default-cli + + fr.alnotz.gui.App + + + + + + + diff --git a/src/main/java/fr/alnotz/SystemInfo.java b/src/main/java/fr/alnotz/SystemInfo.java new file mode 100644 index 0000000..2a85e90 --- /dev/null +++ b/src/main/java/fr/alnotz/SystemInfo.java @@ -0,0 +1,13 @@ +package fr.alnotz; + +public class SystemInfo { + + public static String javaVersion() { + return System.getProperty("java.version"); + } + + public static String javafxVersion() { + return System.getProperty("javafx.version"); + } + +} \ No newline at end of file diff --git a/src/main/java/fr/alnotz/control/MainControl.java b/src/main/java/fr/alnotz/control/MainControl.java new file mode 100644 index 0000000..020f797 --- /dev/null +++ b/src/main/java/fr/alnotz/control/MainControl.java @@ -0,0 +1,42 @@ +package fr.alnotz.control; + +import fr.alnotz.SystemInfo; + +import javafx.application.Platform; +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.fxml.Initializable; +import javafx.scene.control.Button; +import javafx.scene.control.Label; + +import java.net.URL; +import java.util.ResourceBundle; + +public class MainControl implements Initializable { + private boolean hasClicked = false; + @FXML + private Label mainLabel = null; + @FXML + private Button mainButton = null; + @FXML + private void onClick(ActionEvent event){ + if(hasClicked){ + Platform.exit(); + }else{ + mainButton.setText("_Bye."); + hasClicked = true; + } + + } + + @Override + @FXML + public void initialize(URL url, ResourceBundle resourceBundle) { + final String txt = "Hello, JavaFX " + + SystemInfo.javaVersion() + + ", running on Java " + + SystemInfo.javafxVersion() + + "."; + mainLabel.setText(txt); + } +} diff --git a/src/main/java/fr/alnotz/control/package-info.java b/src/main/java/fr/alnotz/control/package-info.java new file mode 100644 index 0000000..a6a36ea --- /dev/null +++ b/src/main/java/fr/alnotz/control/package-info.java @@ -0,0 +1,4 @@ +/** + * Paquet pour les contrôles. + */ +package fr.alnotz.control; \ No newline at end of file diff --git a/src/main/java/fr/alnotz/gui/App.java b/src/main/java/fr/alnotz/gui/App.java new file mode 100644 index 0000000..5cb7b68 --- /dev/null +++ b/src/main/java/fr/alnotz/gui/App.java @@ -0,0 +1,52 @@ +package fr.alnotz.gui; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.VBox; +import javafx.stage.Stage; + +import java.io.IOException; +import java.net.URL; +import java.nio.file.FileSystems; + + +/** + * JavaFX App + */ +public class App extends Application { + + @Override + public void start(Stage stage) throws IOException { + final String pathStr = + "src/main/resources/fr/alnotz/view/mainView.fxml"; + final URL url = FileSystems + .getDefault() + .getPath(pathStr) + .toUri() + .toURL(); + final FXMLLoader fxmlLoader = new FXMLLoader(url); + final VBox vbox = fxmlLoader.load(); + final Scene scene = new Scene(vbox,640,480); + final String cssStr = + "file:src/main/resources/fr/alnotz/style/mainStyle.css"; + scene.getStylesheets().add(cssStr); + stage.setTitle("Main window"); + stage.setScene(scene); + stage.addEventHandler(KeyEvent.KEY_PRESSED, keyEvent -> + System.out.println("Key pressed: " + + keyEvent.getCode().getChar()) + ); + stage.addEventHandler(KeyEvent.KEY_RELEASED, keyEvent -> + System.out.println("Key released: " + + keyEvent.getCode().getChar()) + ); + stage.show(); + } + + public static void main(String[] args) { + launch(); + } + +} \ No newline at end of file diff --git a/src/main/java/fr/alnotz/gui/package-info.java b/src/main/java/fr/alnotz/gui/package-info.java new file mode 100644 index 0000000..bd87e68 --- /dev/null +++ b/src/main/java/fr/alnotz/gui/package-info.java @@ -0,0 +1,4 @@ +/** + * Paquet principal pour l’interface graphique. + */ +package fr.alnotz.gui; \ No newline at end of file diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java new file mode 100644 index 0000000..c92a532 --- /dev/null +++ b/src/main/java/module-info.java @@ -0,0 +1,13 @@ +/** + * Module du projet jfxui. + */ +module fr.alnotz { + requires javafx.controls; + requires javafx.fxml; + opens fr.alnotz to javafx.graphics; + exports fr.alnotz; + exports fr.alnotz.gui; + exports fr.alnotz.control; + opens fr.alnotz.gui to javafx.graphics; + opens fr.alnotz.control to javafx.fxml; +} diff --git a/src/main/resources/fr/alnotz/style/mainStyle.css b/src/main/resources/fr/alnotz/style/mainStyle.css new file mode 100644 index 0000000..53d4c39 --- /dev/null +++ b/src/main/resources/fr/alnotz/style/mainStyle.css @@ -0,0 +1,8 @@ +/** Main style Sheet */ +#mainButton { + -fx-background-color: #101010; + -fx-text-fill: #d0d0d0; + -fx-padding: 50; + -fx-pref-width: 300; + -fx-pref-height: 200; +} \ No newline at end of file diff --git a/src/main/resources/fr/alnotz/view/mainView.fxml b/src/main/resources/fr/alnotz/view/mainView.fxml new file mode 100644 index 0000000..8208049 --- /dev/null +++ b/src/main/resources/fr/alnotz/view/mainView.fxml @@ -0,0 +1,17 @@ + + + + + + + + +