"Hallo Welt" mit Fenster und Knopf
import javafx.application.*; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.Button; import javafx.scene.layout.*; import javafx.stage.Stage; public class HelloFX extends Application { @Override public void start(Stage stage) { // Button Button btn = new Button(); btn.setText("Hallo Welt!"); btn.setOnAction( (event) -> Platform.exit() ); // Stackpane "root" Pane root = new StackPane(); // Knopf anfügen root.getChildren().add(btn); stage.setScene(new Scene(root, 300,150) ); stage.show(); } public static void main(String[] args) { launch(); } }
Compilieren auf der Kommandozeile mit dem Befehl
javac --module-path /usr/share/openjfx/lib/ --add-modules javafx.controls HelloFX.java
Ausführen mit dem Befehl
java --module-path /usr/share/openjfx/lib/ --add-modules javafx.controls HelloFX
Erläuterungen
Grundlegendes
Da steckt jetzt einiges drin.
- Die ersten Zeilen importieren die Klassen der JavaFX Bibliothek, so dass die in der Bibliothek definierten Klassen und Methoden in unserem Programm zur Verfügung stehen.
- Bereits die Klassendefinition für die Klasse
HelloFX
bedient sich der Vererbung, es handelt sich um eine aus der KlasseApplication
abgeleiteten Klasse1) die alle Methoden dieser abstrakten Application Klasse erbt. - Zwei dieser geerbten Methoden sind
launch
undstart
.launch
wird in der main-Methode unseres Programms aufgerufen, damit wird gewissermaßen der JavaFX Steuerprozess aufgerufen, der im Folgenden dann die Methodestart
aufruft, die wir aber mit eigenem Code überschrieben haben, so dass die von uns gewünschte GUI entsteht.
Erzeugen und Anzeigen der GUI-Elemente
1)
die in der Bibliothek
javafx.application
definiert ist