Part 13

Parameter grafischer Benutzungsoberfläche

Die JavaFx-Anwendungen in den bisherigen Beispielen wurden durch die main-Methode der Klasse gestartet, die die Application-Klasse erbt. Schauen wir uns nun kurz das Starten von Anwendungen außerhalb der Application-Klasse an. Nehmen wir an, dass wir die folgende einfache JavaFx-Anwendung verwenden.

package application;

import javafx.application.Application;
import javafx.stage.Stage;

public class JavaFxApplication extends Application {

    @Override
    public void start(Stage window) {
        window.setTitle("Hello World!");
        window.show();
    }
}

Die Anwendung kann auch außerhalb der Klasse durch die von der Application-Klasse bereitgestellte launch-Methode gestartet werden. Im folgenden Beispiel startet eine separate Klasse Main die Anwendung.

package application;

import javafx.application.Application;

public class Main {

  public static void main(String[] args) {
      Application.launch(JavaFxApplication.class);
  }
}

Wenn die main-Methode der obigen Klasse ausgeführt wird, wird die in der Klasse JavaFxApplication definierte Benutzungsoberfläche gestartet.

Der Anwendung können auch zur Laufzeit Parameter über die launch-Methode übergeben werden. Neben der zu startenden Klasse kann der launch-Methode eine unbegrenzte Anzahl von Zeichenketten übergeben werden, die während des Starts verwendet werden können. Diese Zeichenketten stehen während des Starts der Anwendung über den Aufruf der getParameters-Methode zur Verfügung.

Die Methode getParameters gibt ein Objekt vom Typ Parameters zurück, dessen Methode getNamed auf eine Hash-Tabelle mit Schlüssel-Wert-Paaren zugreift. Die Schlüssel-Wert-Paare werden der launch-Methode in der Form --key=value übergeben. Im folgenden Beispiel wird der Titel aus zwei Parametern zusammengesetzt: organization und course.

package application;

import javafx.application.Application;
import javafx.application.Application.Parameters;
import javafx.stage.Stage;

public class JavaFxApplication extends Application {

    @Override
    public void start(Stage window) {
        Parameters params = getParameters();
        String organization = params.getNamed().get("organization");
        String course = params.getNamed().get("course");

        window.setTitle(organization + ": " + course);
        window.show();
    }
}

Wenn die Anwendung jetzt mit der folgenden Klasse gestartet wird, wird der Titel der Anwendung auf "Once upon a time: Title" gesetzt.

package application;

import javafx.application.Application;

public class Main {

    public static void main(String[] args) {
        Application.launch(JavaFxApplication.class,
            "--organization=Once upon a time",
            "--course=Title");
    }
}

Parameter könnten zum Beispiel verwendet werden, um dem Programm den Namen der Datei mitzuteilen, die für das Speichern und Laden von Personen verwendet wird, oder auch eine Webadresse.

Loading
Sie haben das Ende dieses Abschnitts erreicht! Weiter zum nächsten Abschnitt: