Der Subcontroller wird nicht in den Hauptcontroller eingespeist

8

Ich habe ein BorderPane (verbunden mit einem MainController), die FXML für BorderPane verwendet <fx:include> , um ein Label (mit einem Controller StatusBarController) in den unteren Bereich des BorderPane einzubinden. Leider wird der StatusBarController nicht in die MainController-Klasseninstanz eingefügt und ich kann nicht verstehen warum.

main.fxml: BorderPane mit der enthaltenen Statusleiste

%Vor%

statusbar.fxml: Das Label und sein zugehöriger Controller

%Vor%

Der MainController mit einem Feld für den StatusBarController:

%Vor%

Und der Beginn der Anwendung:

%Vor%

Der vollständige Quellcode meines Beispiels ist unter Ссылка

verfügbar

Die Frage ist also: Warum wird der StatusBarController nicht in die Variable statusbarController des MainControllers injiziert?

Danke für jeden Hinweis!

    
stefan.at.wpf 09.02.2013, 19:42
quelle

2 Antworten

16

Um @FXML tag zu verwenden, müssen Sie fx:id angeben.

Aktualisieren Sie Ihre main.fxml :

%Vor%

Danach kannst du die nächsten Konstanten in deinem MainController.java verwenden:

%Vor%

Beachten Sie, dass statusbarController kein teilweise niedriger Klassenname ist, sondern fx:id + Controller word.

    
Sergey Grinev 09.02.2013, 23:34
quelle
0

Es scheint einen Fehler in netbeans 8.0 mit verschachtelten fxmls zu geben. Kann nicht auf Netbeans zählen, um das Controllerobjekt des verschachtelten fxml für Sie zu erstellen, es muss manuell in Ihren MainController eingefügt werden. Jedes Mal, wenn der Controller in Netbeans aktualisiert wird, wird er gelöscht, so dass es etwas mühsam sein kann. Für dieses Beispiel würde das

eingefügt werden

@ FXML private StatusBarController StatusleisteController;

Zeile manuell in den Hauptcontroller in diesem Fall, dann funktioniert es normal. Sehr nützlich für die Organisation großer Fxmls / Controller.

    
SamHuman 24.06.2014 13:25
quelle