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.