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);
我正在尝试制作一个在场景之间来回切换的应用程序,但是当场景切换回来时,我需要将特定 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);