2013-03-27 43 views
7

我刚开始我的第二个JavaFX项目,我需要知道什么时候Stage被最大化。在Swing中,这很简单,可以通过使用WindowListener/Event来完成。但是,在通过JavaFX的Javadoc搜索之后,我似乎无法找到任何倾听Stage状态的方式。一个阶段的监听器最小化,最大化等

有没有办法做到这一点?

回答

16

要找出是否最小化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

+0

谢谢!您认为,在JDK 8中开发我的应用程序是否值得,然后在正式发布时进行更新? – mattbdean 2013-03-28 15:18:22

+0

这取决于你的开发时间。 JDK8非常接近,但用户可能不会立即更新到主要版本。 – 2013-03-28 15:21:59

+0

但是如何在Controller中实现这些?在初始化方法中,阶段仍为空 – 2017-02-28 10:23:36