【问题标题】:Nested controller issue in Java FXJava FX 中的嵌套控制器问题
【发布时间】:2016-03-20 12:06:14
【问题描述】:

我正在尝试在我的主布局 (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" />

我选择的issue.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。我目前的实施有什么问题?

【问题讨论】:

    标签: java javafx controller javafx-2


    【解决方案1】:

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

    @FXML
    private SelectedIssueController selectedIssueControllerController;
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      相关资源
      最近更新 更多