关于JOptionPane的showConfirmDialog问题
2011-12-06 15:53
344 查看
在写记事本时,在处理关闭事件时用到JOptionPane的showConfirmDialog,却发现一些问题,代码和问题如下:
到后面比如到了执行②或③语句时,出现了要点好几次才能得到预期结果的问题。
这是因为每个else if()语句里都有showConfirmDialog,而系统要一个个进行判断,每判断一次,就调用showConfirmDialog,只有选择了(“是”、“否”或“取消”)后,它才确定这条语句的值,所以哪条语句前有n条这个语句即showConfirmDialog总共被调用了n+1次,也即要点n+!次才能得到预期结果。
解决的方法是,只写一个showConfirmDialog,保存起来,然后通过判断是否满足条件再决定是否调用。
代码:
嘿嘿,各位写代码也有点累了吧,特别是深夜的时候是不是觉得应该有点吃的就更好了?
可以到本人开的小店“小灰灰休闲美食”店买点休闲食品哦,既满足食欲又可以放松哈子,当然平时也要吃是吧,也可以买来送朋友哦!
addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { if (selectedFile == null && textArea.getText().equals("")){ System.exit(0); //这个代表是一个空的文档,点击直接退出,成功 }else if(JOptionPane.showConfirmDialog(container, "是否保存?","是否保存",//① JOptionPane.YES_NO_CANCEL_OPTION) == JOptionPane.CANCEL_OPTION){ return; //当有文档时,点关闭时弹出对话框,按“取消”则返回,成功 }else if(JOptionPane.showConfirmDialog(container, "是否保存?","是否保存",//② JOptionPane.YES_NO_CANCEL_OPTION) == JOptionPane.NO_OPTION){ System.exit(0); //当点关闭,按“否”(即不保存时),还会出现一次对话框,要再按一次“否”才退出 }else if(JOptionPane.showConfirmDialog(container, "是否保存?","是否保存",//③ JOptionPane.YES_NO_CANCEL_OPTION) == JOptionPane.YES_OPTION){ //保存功能代码 //当点关闭,点“是”,要三次才可以保存,再退出! } } });
到后面比如到了执行②或③语句时,出现了要点好几次才能得到预期结果的问题。
这是因为每个else if()语句里都有showConfirmDialog,而系统要一个个进行判断,每判断一次,就调用showConfirmDialog,只有选择了(“是”、“否”或“取消”)后,它才确定这条语句的值,所以哪条语句前有n条这个语句即showConfirmDialog总共被调用了n+1次,也即要点n+!次才能得到预期结果。
解决的方法是,只写一个showConfirmDialog,保存起来,然后通过判断是否满足条件再决定是否调用。
代码:
addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { if (selectedFile == null && textArea.getText().equals("")) { System.exit(0); } else { int btn = JOptionPane.showConfirmDialog(container, "是否保存?", "是否保存", JOptionPane.YES_NO_CANCEL_OPTION); if (btn == JOptionPane.CANCEL_OPTION) { return; } else if (btn == JOptionPane.NO_OPTION) { System.exit(0); } else { //保存功能代码 } } } });
嘿嘿,各位写代码也有点累了吧,特别是深夜的时候是不是觉得应该有点吃的就更好了?
可以到本人开的小店“小灰灰休闲美食”店买点休闲食品哦,既满足食欲又可以放松哈子,当然平时也要吃是吧,也可以买来送朋友哦!
相关文章推荐
- 关于在asp.net中使用showDialogModal方式输入数据中存在的问题
- 关于模态窗口,showModelDialog的一些问题
- 关于AlertDialog中不可思议的dialog.show()异常出错的问题的解决
- 关于java JFrame窗口关闭弹出showConfirmDialog 对话框关闭而主窗口不关闭
- 关于在委托中使用Form ShowDialog 不是模态的问题,使用ShowDialog(this)解决
- 如何为JOPtionPane的showConfirmDialog对话框中的按钮设置监听
- 关于showModalDialog和showModelessDialog路径问题
- 关于调用Dialog的复写的show()方法出现空指针的问题
- 关于window.open和window.showdialog返回值的问题
- 关于模式对话框和非模式对话框(Form.Show()&Form.ShowDialog())
- [唠叨两句]一个关于OpenFileDialog 影响 相对路径的问题
- 对话框的学习showConfirmDialog
- 解决showModelessdialog和showModaldialog弹出的窗口不能查看源代码的问题
- window.showdialog完全手册,解决模态窗口,传值和返回值问题
- extjs ajax返回函数中调用window.showmodeldialog()对话框问题详解
- 关于Android中Dialog点击屏幕外失去焦点消失的问题
- 关于模式对话框和非模式对话框(Form.Show()&Form.ShowDialog())
- window.showdialog完全手册,解决模态窗口,传值和返回值问题
- window.showdialog完全手册,解决模态窗口,传值和返回值问题(转载)
- showdialog窗体不在任务栏显示的问题处理