JavaFX窗口最大化最小化事件

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