今天要做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整合之后的程序
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);//1this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {if (JOptionPane.showConfirmDialog(null, "exit?") == JOptionPane.OK_OPTION)System.exit(0);}});//2try {enableEvents(A
大家可以看一下http://www.shwlxx.com/,实践证明,先是processWindowEvent捕获到了关闭操作,之后才是windowClosing事件
-------------------------------------
结合JAVA实践,业务功能实现过程大体过程如下:
1. 用户是否没有保存Flag:文档有变化,设为true / 新打开重新初始化 / 保存时重新初始化
2.
提示保存时,点OKhttp://www.aoyudianqi.com/的时候,要判断是否保存成功了,如果用户点了取消则不关闭窗体
参考资料:http://om/j2se/1/7942.html
http://topic.csdn.net/t/20051204/17/4437180.html
望大家指点