如何获得包含的FXML布局的控制器

时间:2016-11-16 13:04:59

标签: java javafx fxml

我正在使用javaFX。 我有一个没有控制器的FXML布局,包括两个布局,如此

<VBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
    <children>
        <StackPane xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
            <fx:include source="/views/partials/message.fxml" /> 
            <fx:include source="/views/common/Customer.fxml" />
        </StackPane>
    </children>
</VBox>

每个嵌套(FXML)都有自己的控制器。父VBOX由第三类(不是专用控制器)加载和呈现。

我希望能够从外部控制器访问message.fxml的控制器。所以我做了以下几点。

FXMLLoader messageLoader = new FXMLLoader();
messageLoader.setLocation(getClass().getResource("/views/partials/message.fxml"));
Pane pane = messageLoader.load();
MessageController messageController = messageLoader.getController();

但现在我的问题是控制器没有执行我在&#39; message.fxml&#39;上执行的更改(例如设置文本并使其可见或不可见)。即使我可以通过使用System.out.printLn看到正在执行messageController.anyMethod(),但是当我运行应用程序时,它似乎没有在我的布局上显示任何结果。

这有解决方案吗?

0 个答案:

没有答案