2016-06-03 11 views
-2
Laden Sie die FXML-Datei

Wie ich denke, wenn die folgenden zwei Zeilen von Compiler in javaFX ausgeführt werden, Erste Zeile nur den Speicherort der Datei ABC.fxml. Und in der zweiten Zeile bei der Ausführung von loader.load() dieser Zeit Compiler machen ein Objekt des Controllers von ABC.fxml-Datei, und das ist ABCcontroller.java. und rufe es an.Übergeben Sie den Wert der Bühne zu einem anderen Controller der JavaFX-Klasse

loader.setLocation(MyApplicationClass.class.getResource("/demo/view/ABC.fxml")); 
    rootDisplay = (BorderPane) loader.load(); 

Während dieser Zeit (bei loader.load()) Ich möchte auf die Bühne Wert von meiner aktuellen Klassendatei (mainclass.java) an den für dieses Objekt von ABCcontroller.class passieren. Weil ich diesen Wert weiter brauche.

Ich habe wie

loader.load(URL Location, ResourceBundle resources,.....)

gesehen

Können wir den Wert der Bühne übergeben, indem Sie den Parameter geben. Ich weiß nicht, wie ich das nennen soll oder wie diese Parameter verwendet werden.

Bitte schlagen Sie mir vor, wie Sie auf diese Weise oder eine andere Idee implementieren, um das gleiche zu tun.

+0

* "Während dieser Zeit (bei' loader.load() ') möchte ich die Bühne passieren ..." *. Brauchst du es wirklich * zu dieser Zeit *, oder kann es passieren, nachdem 'Laden' zurückgekehrt ist? Die doppelte Frage zeigt Ihnen, wie Sie Werte an den Controller übergeben, nachdem 'load' abgeschlossen wurde. –

Antwort

0

können Sie die folgenden Schritte aus, um einen Parameter auf einem anderen Controller übergehen:

eine Methode in der Controller-Klasse erstellen, die die Parameter, zum Beispiel akzeptiert:

public void initVariables(String variable) { 
    this.variable = variable; 
} 

Aufruf der Methode nach den loader.load() :

WindowController controller = fxmlLoader.<WindowController>getController(); 
controller.initVariables("Test"); 

ersetzen WindowController mit dem Namen Ihrer Controller-Klasse.

Verwandte Themen