- 問題背景:
最近做一個本地客戶端與遠程服務器通信的小程序,採用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);
}
});