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);
                }
            }
        });

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值