2016-05-06 14 views

Antwort

0

Sie können versuchen, die initialisierbare Schnittstelle verwenden, die in JavaFX-Anwendungen aufgerufen wird, bevor das Wurzelelement vollständig verarbeitet wird: JavaDoc

Wenn Ihr Controller diese Schnittstelle implementiert, müssen Sie die initialisierbare-Methode zu implementieren.

Eine Controller-Klasse wird erstellt, dann werden alle @ FXML-Felder und -Methoden injiziert und danach können Sie in Ihrer initialize() - Methode darauf zugreifen.

+0

Ich würde sagen, "kann implementieren" ist die ungenaue hier. Da der Controller nicht-abstrakt sein muss, bedeutet das Hinzufügen der Schnittstelle, dass die Methode implementiert werden muss. Auch IMHO die Erklärung der Vorteile dieses Ansatzes sind ein bisschen irreführend. Sie können auch Dienste in einem Konstruktor überprüfen (mit der Methode 'initialize' können Sie nur die injizierten Instanzen entsprechend den Ergebnissen ändern). – fabian

+0

Sie haben recht, wenn Initializable implementiert ist, muss initialize implementiert werden. Außerdem hängt es von den Diensten ab, ob Sie einen Konstruktor oder die initialize() - Methode verwenden. Mit initialize() können Sie auf die von @FXML in Ihrer Controller-Klasse annotierten Attribute und Methoden zugreifen. Auf externe Ressourcen kann auch im Konstruktor zugegriffen werden. Siehe hier: https://docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html#controllers – Supahupe

Verwandte Themen