java JFrame 关闭时弹窗选择框

当窗口关闭时,程序会检查列表是否为空。如果非空,它会显示一个确认对话框。用户点击是时,程序关闭;点击否则阻止默认的关闭行为。关键在于使用`setDefaultCloseOperation(DO_NOTHING_ON_CLOSE)`防止无操作时程序关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击关闭时的弹出框

网上大部分资料只展示了弹出选择框后,点“是”,后的退出代码,但点“否”后,程序还是会退出,下面展示一下弹出框的代码:

addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				
				if(list_customer.size()!=0)
				{
					int select=JOptionPane.showConfirmDialog(null, "已识别的客户信息尚未生成表格,确定关闭?", "提示", 
							JOptionPane.YES_NO_OPTION); 
					if(select==0)
					
						System.exit(0);//关闭程序
					else
						setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);	//DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;
				}			
			}
		});

首先,弹窗的前提是监听窗口:windowClosing方法,这个方代表点击窗口关闭时的方法,执行完后,程序再执行关闭,所以如果没有代码阻止关闭,无论点什么,都会执行后面的关闭代码。

其次,JOptionPane.showConfirmDialog方法显示“选择类型弹窗”

最后,选择“是”:System.exit(0) 关闭程序;

关键:选择“否”:setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); //不执行任何操作

有关setDefaultCloseOperation的参数选择,请看链接:
窗口关闭 setDefaultCloseOperation的四种关闭方式的区别

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值