JavaFX: FXML嵌套和子Controller(Sub-Controller)

Posted xhBruce

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX: FXML嵌套和子Controller(Sub-Controller)相关的知识,希望对你有一定的参考价值。

JavaFX: FXML嵌套和子Controller(Sub-Controller)

FXML嵌套

<fx:include source="menu-layout.fxml"/>

Sub-Controller

JavaFX2.2将嵌套的Controller实例直接映射到外部文档的Controller的成员属性中,使得与嵌套的Controller交互变得更为简单。(并没有用)

父 app-view.fxml(AppController)

<VBox prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
      fx:controller="org.xhbruce.controller.AppController">
    <children>
        <fx:include source="menu-layout.fxml"/>
        <!-- ... ... -->
    </children>
</VBox>

子 menu-layout.fxml(AppMenuController)

<MenuBar VBox.vgrow="NEVER" xmlns="http://javafx.com/javafx"
         xmlns:fx="http://javafx.com/fxml"
         fx:controller="org.xhbruce.controller.AppMenuController">
    <menus>
        <Menu mnemonicParsing="false" text="%menu.file" onAction="#onMenuClick">
            <items>
                <!-- ... ... -->
            </items>
        </Menu>
        <Menu mnemonicParsing="false" text="%menu.edit"  onAction="#onMenuClick">
            <items>
                <!-- ... ... -->
            </items>
        </Menu>
        <Menu mnemonicParsing="false" text="%menu.help" onAction="#onMenuClick">
            <items>
                <!-- ... ... -->
            </items>
        </Menu>
    </menus>
</MenuBar>

获取子Control

最后还是建立ControllerManager比较方便:JavaFX的Controller之间进行通信

以上是关于JavaFX: FXML嵌套和子Controller(Sub-Controller)的主要内容,如果未能解决你的问题,请参考以下文章

一个控制器到 2 个 fxmls (JavaFX)

JavaFx,@FXML 的问题

JavaFX 在没有控制器的 fxml 中包含 fxml

javafx 8 兼容性问题 - FXML 静态字段

javafx 8 兼容性问题 - FXML 静态字段

无法在 JavaFX 中加载 FXML 文件