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

JavaFX - How to load a specific AnchorPane's contents from an FXML file?

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

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

AnchorPane0

----拆分窗格

--------AnchorPane1

--------AnchorPane2

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

AnchorPane0

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

我找到了如下所示的解决方案:

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);