2013-10-10 26 views
-2

我需要在我的控制器ANS当前舞台搜索我发现了两个解决方案后:JavaFX的:第一阶段在控制器 - 最好的解决办法

  1. 传递舞台上,以我的控制器在初始化(如that
  2. 得到它(https://stackoverflow.com/a/12003426/2039619

什么是最佳解决方案?

+0

我觉得这个问题不是比其他的更基于观点。 我问过这个,因为我想从其他地方获得经验。如何做到这一点。我想,这也是这个网站的目的。 我得到了一个非常有帮助的答案! – JulianG

回答

1

从FXML控制器中获取舞台可能会非常棘手,就好像尚未完成加载,您无法通过组件(在FXML中)访问场景,从而无法访问场景(空指针!)。您必须在initialize方法(来自Initializable接口)中添加代码,以便在运行时从控制器中声明的任何组件安全地获取当前阶段。

另一种选择对我来说似乎更好,因为您可以在ASAP阶段做这些事情,这也意味着在呈现当前FXML之前,当您将舞台明确地插入到控制器中时(使用setter,您添加一个参考它),您不需要等待当前FXML中的GUI内容。缺点是您需要添加显式代码以将阶段交付给FXML控制器(以及从控制器到控制器等)。

+0

非常感谢! – JulianG