【发布时间】:2015-05-25 15:19:45
【问题描述】:
我有一个关于摆动窗口监听器和默认关闭操作之间关系的问题。当我处理以下情况时会出现问题:
我为JFrame添加了一个窗口监听器(WindowAdapter用于监听器),并覆盖windowClosing函数:如果用户关闭窗口,会弹出一个对话框来确认,如果用户选择CANCEL 选项,然后直接返回。但是,当我测试代码并在关闭窗口时选择CANCEL 时,框架窗口仍然关闭(或者可能只是不可见,因为Java 图标仍在任务栏中)。
然后我用DO_NOTHING_ON_CLOSE添加默认的关闭选项,同样的测试行为,框架窗口没有关闭,这是我所期望的。
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
然后我把默认关闭选项改成EXIT_ON_CLOSE,同样的测试行为,直接关闭框架窗口(这次Java图标也消失了)。
这让我很困惑。这是否意味着窗口侦听器只能定义窗口关闭时要执行的操作但无法确定是否关闭窗口?或者我需要覆盖其他功能?
【问题讨论】:
-
这是我所期望的。setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); ---> myFrame.setVisible(false)
标签: java swing jframe default windowlistener