SWING 窗体关闭提示确认 的实现总结
2011-06-29 11:46
281 查看
今天要做SWING的窗体关闭保存确认,客户要求像WORD一样
首先,说SWING窗体关闭的实现,两种方法
1:在windowClosing事件进行处理
注意点:默认情况都是
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这里要替换成setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
2:捕获窗口的相应事件进行处理(AWTEvent.WINDOW_EVENT_MASK)
此处通过捕获WINDOW_EVENT,判断如果是关闭事件,进行提示
直接上代码,以下为1.2整合之后的程序
大家可以看一下,实践证明,先是processWindowEvent捕获到了关闭操作,之后才是windowClosing事件
-------------------------------------
结合JAVA实践,业务功能实现过程大体过程如下:
1. 用户是否没有保存Flag:文档有变化,设为true / 新打开重新初始化 / 保存时重新初始化
2. 提示保存时,点OK的时候,要判断是否保存成功了,如果用户点了取消则不关闭窗体
参考资料:http://www.javanb.com/j2se/1/7942.html
http://topic.csdn.net/t/20051204/17/4437180.html
望大家指点
首先,说SWING窗体关闭的实现,两种方法
1:在windowClosing事件进行处理
注意点:默认情况都是
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这里要替换成setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
2:捕获窗口的相应事件进行处理(AWTEvent.WINDOW_EVENT_MASK)
此处通过捕获WINDOW_EVENT,判断如果是关闭事件,进行提示
直接上代码,以下为1.2整合之后的程序
import javax.swing.*; import java.awt.AWTEvent; import java.awt.event.*; public class WindowTest { public static void main(String[] args) { TestFrame frame = new TestFrame(); frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); frame.setVisible(true); } } class TestFrame extends JFrame { public TestFrame() { setTitle("Test"); setSize(400, 400); //1 this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { if (JOptionPane.showConfirmDialog(null, "exit?") == JOptionPane.OK_OPTION) System.exit(0); } }); //2 try { enableEvents(AWTEvent.WINDOW_EVENT_MASK); } catch (Exception e) { } } protected void processWindowEvent(WindowEvent e) { boolean enable = false; if (e.getID() == WindowEvent.WINDOW_CLOSING) { int option = JOptionPane.showConfirmDialog(this, "exit?"); enable = (option == JOptionPane.NO_OPTION || option == JOptionPane.CANCEL_OPTION); } if (!enable) { super.processWindowEvent(e); } } }
大家可以看一下,实践证明,先是processWindowEvent捕获到了关闭操作,之后才是windowClosing事件
-------------------------------------
结合JAVA实践,业务功能实现过程大体过程如下:
1. 用户是否没有保存Flag:文档有变化,设为true / 新打开重新初始化 / 保存时重新初始化
2. 提示保存时,点OK的时候,要判断是否保存成功了,如果用户点了取消则不关闭窗体
参考资料:http://www.javanb.com/j2se/1/7942.html
http://topic.csdn.net/t/20051204/17/4437180.html
望大家指点
相关文章推荐
- Duilib 实现窗口点击关闭确认退出提示
- javascript实现关闭页面确认提示窗口
- 【转载】winForm窗体关闭按钮 实现提示选择,托盘后台运行或退出(类似QQ托盘区运行)
- swing窗体制作及系统编程中的窗体切换及关闭的实现
- C# WinForm 如何实现窗体的关闭时温馨提示
- Swing 窗体关闭对话框提示
- BusyTipOperator——显示提示窗体的实现(窗体打开与关闭过程的同步)
- winform关闭窗体时确认框提示两次
- Swing 窗体关闭对话框提示
- java swing 点击关闭按钮最小化到系统托盘的实现
- 订单超时自动关闭的实现方案总结
- javaScript 删除确认实现方法总结分享
- JS实现页面(窗口)直接关闭 ,无需提示
- c#中实现双击标题栏关闭窗体
- javascript 页面关闭前提示确认
- html5实现弹出提示框,并且伴随遮罩层并且可以关闭弹出框
- JavaScript实现关闭窗口前提示信息
- (总结)Swing组件的使用---下拉式菜单(menu),弹出式菜单(JPopupMenu),选项卡窗体(JTabbedPane)
- C#多线程实现等待提示窗体
- 窗体工具类(二)窗体关闭提示