JavaFX:控制器中的阶段 - 最佳解决方案

时间:2013-10-10 11:24:59

标签: java javafx-2

我需要在我的Controller ans中找到当前舞台,我找到了两个解决方案:

  1. 在初始化时将舞台传递给我的控制器(如that
  2. 从控件(https://stackoverflow.com/a/12003426/2039619
  3. 获取

    什么是最佳解决方案?

1 个答案:

答案 0 :(得分:1)

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

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