重新加载已经填充的AnchorPane

时间:2014-03-29 16:59:09

标签: java javafx

所以我一直致力于JavaFX项目,我的工作流程非常简单。我使用了几个不同的AnchorPanes,每个用户都会填写一些信息并继续下一个AnchorPane。每当他们移动到下一个AnchorPane时,我使用以下代码加载新的AnchorPane。

 private Initializable replaceSceneContent(String fxml) throws Exception {
    FXMLLoader loader = new FXMLLoader();
    InputStream in = MyClass.class.getResourceAsStream(fxml);
    loader.setBuilderFactory(new JavaFXBuilderFactory());
    loader.setLocation(Caster.class.getResource(fxml));

    AnchorPane page;
    try {
        page = (AnchorPane) loader.load(in);
    } finally {
        in.close();
    } 
    Scene scene = new Scene(page, APP_WIDTH, APP_HEIGHT);

    stage.setScene(scene);
    stage.sizeToScene();

    return (Initializable) loader.getController();
}

这样可以很好地加载一切。但我也有能力回到之前的AnchorPane。目前这使用相同的方法,但这并不理想,因为它加载了一个全新的AnchorPane,并且用户之前输入的所有信息都消失了。我想保留anchorpanes并重新加载它们并尝试使用类似于以下代码重新加载它们

 private void replaceSceneContent(AnchorPane page) throws Exception {
    Scene scene = new Scene(page, APP_WIDTH, APP_HEIGHT);

    stage.setScene(scene);
    stage.sizeToScene();
}

然而,这导致我的应用程序显示完全白屏,可能是因为我没有再次加载FXML?我需要一些关于如何保留用户输入的数据的想法,如果他们想要返回的话。关于如何做得好的任何想法?

0 个答案:

没有答案