2013-03-27 40 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