【问题标题】:Listener for a Stage minimizing, maximizing, etc舞台最小化、最大化等的监听器
【发布时间】:2013-03-17 14:11:15
【问题描述】:

我刚刚开始我的第二个 JavaFX 项目,我需要知道 Stage 何时被最大化。在 Swing 中,这相当简单,可以通过使用 WindowListener/Event 来完成。但是,通过 JavaFX 的 Javadoc 搜索后,我似乎找不到任何方法来监听 Stage 的状态。

有没有办法做到这一点?

【问题讨论】:

    标签: java window javafx-2


    【解决方案1】:

    要了解Stage 是否已最小化,您可以收听iconified 属性:

    stage.iconifiedProperty().addListener(new ChangeListener<Boolean>() {
    
        @Override
        public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
            System.out.println("minimized:" + t1.booleanValue());
        }
    });
    

    通讯作者maximized 属性将在即将发布的 8.0 版本中添加:

    stage.maximizedProperty().addListener(new ChangeListener<Boolean>() {
    
        @Override
        public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) {
            System.out.println("maximized:" + t1.booleanValue());
        }
    });
    

    您可以在此处下载 JDK 8(包括 FX8)的早期访问版本:http://www.oracle.com/technetwork/java/javase/downloads/ea-jsp-142245.html

    【讨论】:

    • 谢谢!在您看来,是否值得在 JDK 8 中开发我的应用程序,然后在正式发布时对其进行更新?
    • 这取决于你的开发时间。 JDK8 已经很近了,但用户可能不会立即更新到主要版本。
    • 但是如何在 Controller 中实现这些?在初始化方法中,阶段仍然为空
    • 我已经尝试了所有选项,但它不起作用。我使用的是 JDK 10,会不会有问题?
    • 谢谢!它帮助了我。
    猜你喜欢
    • 2012-01-10
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    相关资源
    最近更新 更多