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);//避免打開黑屏
   }
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章