javafx最小化後右鍵關閉窗口,再點擊系統托盤無法顯示界面

問題描述

最小化以後, 直接右鍵桌面圖標"關閉窗口", 再點擊系統托盤, 無法再顯示窗口

具體詳情

代碼設置了: 

Platform.setImplicitExit(false);

因此調用 stage.hide(); 時不直接退出,  需要調用  System.exit(0); 纔會真正退出.

stage.hide() 和 stage.close() 是一樣的功能,沒啥區別

當你在任務欄圖標, 右鍵關閉窗口的時候   , 我猜系統是調用了 stage.hide()方法關閉了窗口.

問題就出在這,  你如果同時執行 stage.setIconfized(true); 和 stage.hide();  你的stage會死掉~

所以我們需要在 最小化(stage.setIconfized(true))之後 , 在你關閉窗口(stage.hide())之前  將最小化的狀態設爲false (也就是stage.setIconfized(false);)

使用 stage.setOnCloseRequest 可以監聽窗口關閉  ( 直接 X 掉窗口也會監聽到哦)

解決方法  (注意:不需要在外面包一層  Platform.runlater();)

        stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
            @Override
            public void handle(WindowEvent event) {
                if(primaryStage.isIconified()){
                    primaryStage.setIconified(false);
                }
            }
        });

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章