First project structure.

This commit is contained in:
Konrad Neitzel
2025-03-17 20:54:16 +01:00
commit 7117bdfdcc
15 changed files with 1320 additions and 0 deletions
@@ -0,0 +1,30 @@
package de.kneitzel;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
public class JavaFXApp extends Application {
@Override
public void start(Stage primaryStage) {
try {
primaryStage.setTitle("Hello World!");
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("MainWindow.fxml"));
Parent root = fxmlLoader.load();
primaryStage.setScene(new Scene(root));
primaryStage.show();
} catch (Exception ex) {
System.out.println("Exception: " + ex.getMessage());
ex.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
@@ -0,0 +1,15 @@
package de.kneitzel;
/**
* 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) {
JavaFXApp.main(args);
}
}
@@ -0,0 +1,33 @@
package de.kneitzel;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextField;
import java.net.URL;
import java.util.ResourceBundle;
public class MainWindow implements Initializable {
private int counter = 0;
@FXML
private TextField textField;
@Override
public void initialize(URL location, ResourceBundle resources) {
displayCounter();
}
private void displayCounter() {
textField.setText("Click counter: " + counter);
}
@FXML
private void onButtonClick(ActionEvent actionEvent) {
counter++;
displayCounter();
}
}
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane prefHeight="127.0" prefWidth="209.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.kneitzel.MainWindow">
<children>
<Button fx:id="button" layoutX="44.0" layoutY="70.0" mnemonicParsing="false" onAction="#onButtonClick" text="Click Me" />
<TextField fx:id="textField" layoutX="14.0" layoutY="24.0" />
</children>
</AnchorPane>