Javafx如何正确切换场景?

时间:2019-03-07 14:36:56

标签: javafx fxml scene

我一直在Internet上到处寻找,但是对于这个简单的问题我找不到一个直接的答案:在JavaFX Application中切换场景的最佳方法是什么? 我每个都有一些FXML文件和Controller,我希望能够尽快在它们之间进行切换(屏幕大小应保持不变,窗口的所有内容(内容除外)都应保持不变)。

我可以考虑多种方法,最常见的方法是使用FXMLLoader加载FXML文件,然后创建一个新的Scene,然后将此Scene设置为Stage,最后显示Stage。这行得通,但是对我来说似乎并不高效,因为每次我切换页面时,程序都必须创建一个全新的场景,然后将其分配给舞台。为什么使用这种方法最多?

Parent root = FXMLLoader.load(getClass().getResource("newPage.fxml"));
Stage.setScene(new Scene(root));
Stage.show();

我发现了另一种方法,就是简单地更改当前场景的根(因此基本上用新的替换了场景的FXML文件)。这似乎更快一些,也比较轻松,但这是做事的好方法吗?

Parent root = FXMLLoader.load(getClass().getResource("newPage.fxml"));
Stage.getScene().setRoot(root);
Stage.show();

在页面(场景)之间切换的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

考虑到您自己的要求“屏幕大小应该保持不变,除了内容之外,窗口的所有内容都应该保持不变”,那么方法2似乎很自然,不是吗?由于它的速度稍快,并且可以根据您自己的发现工作,因此我不会三思而后行地做出选择。