- 问题背景:
最近做一个本地客户端与远程服务器通信的小程序,采用Mina与远程服务器进行通信。 - 问题描述:
客户端采用Java FX编写,但是在Java FX窗口最小化切换到最大化的时候会遇到窗口界面黑屏(界面组件都看不见)的bug,不知道什么原因造成的。但是鼠标点击一下内部界面(界面获取焦点)就可以恢复正常。 - 解决过程:
因此我想通过监听窗口最大化事件来解决这个问题。但是找了半天,没有这样事件,网上也没查到这样的东西。最后试了一下的窗口的焦点改变事件,当窗口最小化和最大化的时候,窗口的焦点是会改变的。因此通过监听窗口焦点的改变事件就可以解决。 - 代码如下:
scene.getWindow().focusedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
scene.getWindow().setFocused(true);
}
});