faecher:informatik:oberstufe:java:javafx:halloweltfx:start

"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

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 Klasse Application abgeleiteten Klasse1) die alle Methoden dieser abstrakten Application Klasse erbt.
  • Zwei dieser geerbten Methoden sind launch und start. launch wird in der main-Methode unseres Programms aufgerufen, damit wird gewissermaßen der JavaFX Steuerprozess aufgerufen, der im Folgenden dann die Methode start aufruft, die wir aber mit eigenem Code überschrieben haben, so dass die von uns gewünschte GUI entsteht.

1)
die in der Bibliothek javafx.application definiert ist
  • faecher/informatik/oberstufe/java/javafx/halloweltfx/start.txt
  • Zuletzt geändert: 10.03.2020 12:35
  • von sbel