2016-03-20 11 views
2

Ich versuche Controller (SelectedIssueController) in meinem Hauptlayout (main.fxml) einzuschließen. Aber ich erhalte den folgenden Fehler:Verschachtelte Controller-Problem in Java FX

Can not set lt.mypackage.controllers.SelectedIssueController field lt.mypackage.controllers.MainController.selectedIssueController to javafx.scene.layout.VBox 

Linie in main.fxml:

<fx:include fx:id="selectedIssueController" source="controllers/selectedissue.fxml" /> 

Mein selectedissue.fxml:

<VBox xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lt.mypackage.controllers.SelectedIssueController" fillWidth="false" SplitPane.resizableWithParent="false"> 
    <children> 
    ..... 
    ..... 
    </children> 
</VBox> 

Linie in MainController:

@FXML 
private SelectedIssueController selectedIssueController; 

Wie ich es verstehe injiziert VBox Objekt jetzt, aber ich brauche SelectedIssueController. Was ist falsch an meiner aktuellen Implementierung?

Antwort

3

Die FXMLLoader anhängt Controller zum fx:id im fx:include Elemente angegeben, den Namen des Feldes zu bekommen um den Controller zu injizieren. Daher sollte es sein, entweder:

@FXML 
private SelectedIssueController selectedIssueControllerController; 

oder

<fx:include fx:id="selectedIssue" source="controllers/selectedissue.fxml" /> 

Die auf dem Gebiet injizierten Wert ohne Controller Suffix der Wert für die fx:include, dh die Object für die Wurzel des enthaltenen fxml, erstellt ist .

+0

Es funktioniert, danke :) – sider