【问题标题】:Access the Stage from within the controller从控制器内访问舞台
【发布时间】:2017-07-26 16:14:57
【问题描述】:

如何在分配给View 的控制器中访问Stage 表单?

目前我使用控制器外部的设置器来设置阶段,但我想知道是否有一种方法不需要依赖控制器外部显式调用的方法。

【问题讨论】:

    标签: java-8 javafx-8


    【解决方案1】:

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

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

    小心使用它。 Stage 是 Window 的子类,所以 Stage 是 Window,但 Window 不一定是 Stage。

    【讨论】:

    • 在生命周期的什么时候可以调用?我猜它在@FXML initialize() {..} 期间不可用...
    • 不,您必须已经附加到场景图。如果您需要更早地访问该阶段,我会在创建您的控制器时将其注入。
    • 这就是我的想法,这就是我现在正在做的事情,但我想知道是否有更好的方法来做到这一点。
    猜你喜欢
    • 2020-02-18
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多