2017-07-26 102 views
0

如何在分配给View的控制器内访问Stage从控制器内访问舞台

目前我使用控制器外部的setter来设置舞台,但我想知道是否有一种方法,我不需要从控制器外部明确调用方法。

回答

0

如果你在你的控制器的任何节点的引用,您可以:

Stage theStage = (Stage) nodeReference.getScene().getWindow(); 

小心使用此。舞台是Window的一个子类,所以Stage是一个窗口,但窗口并不总是一个舞台。

+0

在生命周期的什么时候可以调用?我猜这是在'@FXML initialize(){..}'期间不可用的......“ – Hannes

+0

不,你必须已经连接到场景图。如果您需要更早访问舞台,我会在创建控制器时注入它。 – Eric

+0

这就是我的想法,这就是我现在正在做的,但我想知道是否有更好的方法来做到这一点。 – Hannes