网上大部分资料只展示了弹出选择框后,点“是”,后的退出代码,但点“否”后,程序还是会退出,下面展示一下弹出框的代码:
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的四种关闭方式的区别