Listener for a Stage minimizing, maximizing, etc

java, javafx-2, window

Solution

To find out if `Stage` minimized you can listen to `iconified` property:

stage.iconifiedProperty().addListener(new ChangeListener<Boolean>() {

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

Correspondent `maximized` property is added in the upcoming 8.0 release:

stage.maximizedProperty().addListener(new ChangeListener<Boolean>() {

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

You can download early access build of JDK 8 (which includes FX8) here: http://www.oracle.com/technetwork/java/javase/downloads/ea-jsp-142245.html

Problem

I am just starting my second JavaFX projects, and I need to know when a `Stage` is being maximized. In Swing, this is fairly simple and can be accomplished by using a WindowListener/Event. However, after searching through JavaFX's Javadoc, I can't seem to find any way of listening to the state of a `Stage`. Is there any way to do this?

Original source