Listener for a Stage minimizing, maximizing, etc

2019-02-09 08:53发布

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?

1条回答
Juvenile、少年°
2楼-- · 2019-02-09 09:32

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

查看更多
登录 后发表回答