在JavaFX中切换视图

在JavaFX中切换视图,java,javafx,Java,Javafx,一种方法是使用setScene()方法在Stage中更改场景 不同的是,使用setRoot()方法设置Scene的根 什么时候用哪一个?使用其中的每一种都有什么优点/缺点和后果吗? Stage.setScene()更改整个JFX外观(就像舞台被新场景替换时的剧院) Scene.setRoot()允许将当前场景切换到组中的一个新场景 此外,如果切换场景,将丢失与场景关联的属性。通常,例如,将样式表加载到场景中,因此如果更改场景,将丢失CSS样式,或者需要再次加载样式表。同样,您也会丢失背景颜色、

一种方法是使用
setScene()
方法在
Stage
中更改场景

不同的是,使用
setRoot()
方法设置
Scene
的根

什么时候用哪一个?使用其中的每一种都有什么优点/缺点和后果吗?

  • Stage.setScene()更改整个JFX外观(就像舞台被新场景替换时的剧院)
  • Scene.setRoot()允许将当前场景切换到组中的一个新场景

此外,如果切换场景,将丢失与场景关联的属性。通常,例如,将样式表加载到场景中,因此如果更改场景,将丢失CSS样式,或者需要再次加载样式表。同样,您也会丢失背景颜色、大小等。因此,这实际上取决于您是要保留这些属性还是要替换它们。

如果切换场景,您将丢失与场景关联的属性。通常,例如,将样式表加载到场景中,因此如果更改场景,将丢失CSS样式,或者需要再次加载样式表。同样,您也丢失了背景颜色、大小等。因此,这实际上取决于您是保留这些属性还是替换它们。@James\u d这非常有用。尚未使用css样式,但可能会使用。@James_D如果您指的是窗口大小(按“大小”)不是Stage中定义的大小?场景有一个与之相关的宽度和高度,可以通过构造函数指定。在某些情况下,我认为调用
Stage.sizeToScene()
将使用这些值。