【发布时间】:2010-11-17 02:54:19
【问题描述】:
关闭JFrame的正确方法是什么,就像用户点击了X关闭按钮,或者按下了Alt+F4 (在 Windows 上)?
我有我的默认关闭操作设置我想要的方式,通过:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
它完全符合我对上述控件的要求。这个问题不是关于那个的。
我真正想做的是让 GUI 的行为方式与按下 X 关闭按钮的行为方式相同。
假设我要扩展WindowAdaptor,然后通过addWindowListener() 添加我的适配器实例作为侦听器。我希望通过windowDeactivated()、windowClosing() 和windowClosed() 看到与X 关闭按钮相同的调用序列。与其说是撕毁窗户,不如说是告诉它自己撕毁。
【问题讨论】:
-
是的,jFrame.dispose() 应该关闭窗口并清理所有内容?
-
因为 dispose 不是 1:1 相当于点击 [x] 关闭窗口?
-
是的好问题,我希望用户单击我明确提供的未修饰的 JFrame 覆盖上的 [x] 按钮,以 完全 像用户单击一样操作操作系统特定的装饰 JFrame 窗口上的操作系统提供的 [x] 按钮。
-
this.dispatchEvent(wev); 怎么样?而不是 Toolkit.getDefaultToolkit... 前者是公认的答案所暗示的。