Java FX中的嵌套控制器问题

时间:2016-03-20 12:06:14

标签: java javafx controller javafx-2

我试图在我的主要布局( main.fxml )中包含控制器(SelectedIssueController)。但是我收到以下错误:

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

在main.fxml中输入:

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

我的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>

排队MainController

@FXML
private SelectedIssueController selectedIssueController;

据我所知,它现在会注入VBox个对象,但我需要SelectedIssueController。我目前的实施有什么问题?

1 个答案:

答案 0 :(得分:3)

FXMLLoaderController附加到fx:id元素中指定的fx:include,以获取要将控制器注入的字段的名称。因此它应该是:

@FXML
private SelectedIssueController selectedIssueControllerController;

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

注入到没有Controller后缀的字段的值是为fx:include创建的值,即为包含的fxml的根创建的Object