首页 文章

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

提问于
浏览
0

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

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

相关问题