JavaFX - 如何从FXML文件加载特定的AnchorPane内容?

时间:2017-01-11 09:16:07

标签: javafx fxml scenebuilder

我试图创建一个在场景之间来回切换的应用程序,但是我需要在场景切换回时将特定的AnchorPane的内容加载到另一个AnchorPane中。例如:

在我的FXML1中,我有一个如下所示的层次结构:

AnchorPane0

---- SplitPane

-------- AnchorPane1

-------- AnchorPane2

在FXML2中,层次结构就是这样:

AnchorPane0

所以我加载FXML1,然后我有一个按钮,可以切换将FXML2.AnchorPane0加载到FXML1.AnchorPane2的场景。我在FXML2.AnchorPane0中有一个后退按钮,需要将FXML1.AnchorPane2的原始场景加载到FXML1.AnchorPane2中。现在我的后退按钮将所有4个FXML1容器加载到FXML1.AnchorPane2中。所以我的问题是,如何在不使FXML1.AnchorPane2成为自己的FXML的情况下加载特定容器的内容?我是否需要为FXML1.AnchorPane2编写一个get方法来访问其内容,或者是否有办法返回一个包含所有内容的AnchorPane?

1 个答案:

答案 0 :(得分:1)

我发现解决方案如下所示:

AnchorPane loader = FXMLLoader.load(getClass().getResource("myFXML.fxml"));

SplitPane spane = (SplitPane) loader.getChildren().get(0);

AnchorPane pane = (AnchorPane) spane.getItems().get(1);

foregroundAnchorPane.getChildren().setAll(pane);