我试图创建一个在场景之间来回切换的应用程序,但是我需要在场景切换回时将特定的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?
答案 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);