Java FX Application,Scene和Parent之间有什么关系?

时间:2016-10-05 11:55:44

标签: java javafx

从我看过的教程中,每个Java FX必须有一个包含多个场景的应用程序。每个场景基本上都是FXML文件的持有者(或者可以写成硬编码)。

但是,当我尝试切换场景时,我遇到了保持窗口最大化的问题。

最终帮助我的是How can I keep my window size while switching scenes in Java FX?

所以,我的问题基本上是Application,Scene和Parent之间的关系是什么?

我想假设每个FXML文件都有一个场景,或只有一个场景,只是替换父节点?

由于

1 个答案:

答案 0 :(得分:7)

Application:是一个为您创建环境的单个实例。它创建一个primaryStage并启动javafx ui线程。

Stage:是一个窗口。您可以根据需要拥有尽可能多的StagesApplicationStage方法中为您提供start,与手动创建的Stages相比,该方法具有一些特殊属性。

Scene:每个Stage一次只能容纳一个SceneScenes可以换出,但不鼓励这样做。最好只换出root的{​​{1}}。

Parent:一个简单的Scene,可以容纳其他Node作为孩子。每个Nodes只需Scene Parent

FXML:与上述任何事情无关。

单个FXML文件只描述了root(您获得Node的根节点)及其子节点的层次结构。您可以使用FXML文件描述FXMLLoaderButton及其所有子项的单Node或根Scene。 FXML没有绑定到单个Scene

如果您愿意,您可以让FXML文件在Label内描述TextfieldGridPane(如标准输入公式)并在每次需要此安排时加载它(即使在单个场景中,也可以随心所欲)。