为了账号安全,请及时绑定邮箱和手机立即绑定

如何以编程方式关闭JFrame

如何以编程方式关闭JFrame

四季花海 2019-06-26 16:21:55
如何以编程方式关闭JFrame得到一个JFrame若要关闭,与用户按下X关闭按钮,或按下ALT+F4(在Windows上)?我的默认关闭操作设置为我想要的方式,通过:setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);它完全符合我对上述控件的要求。这个问题不是关于那个的。我真正想做的是让GUI以与X关闭按钮会导致它的行为。假设我要WindowAdaptor然后将我的适配器的一个实例作为侦听器添加到addWindowListener()..我想看到同样的通话顺序windowDeactivated(), windowClosing(),和windowClosed()将发生在X关闭按钮。与其说是撕碎窗户,不如说是让它撕碎自己,可以这么说。
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

如果希望GUI表现为单击X按钮,则需要将窗口关闭事件发送到Window..这个ExitAction从…关闭应用程序允许将此功能添加到菜单项或任何使用Action这很容易。

frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));


查看完整回答
反对 回复 2019-06-26
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

setVisible(false); //you can't see me!dispose(); //Destroy the JFrame object

不太棘手。


查看完整回答
反对 回复 2019-06-26
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

如果Alt-F4或X的意思是“立即退出应用程序,而不考虑其他Windows或线程正在运行的情况”,那么System.exit(...)就行了一点儿没错你想要的是一种非常突然的,野蛮的,可能是有问题的方式。

如果你所说的Alt-F4或X是指隐藏窗口,那么frame.setVisible(false)就是你如何“关上”窗户。该窗口将继续消耗资源/内存,但可以很快使其再次可见。

如果Alt-F4或X的意思是隐藏窗口并释放它正在消耗的任何资源,那么frame.dispose()就是你如何“关上”窗户。如果框架是最后一个可见窗口,并且没有其他非守护进程线程正在运行,程序将退出。如果再次显示窗口,则必须再次重新初始化所有本机资源(图形缓冲区、窗口句柄等)。

dispose()可能最接近你真正想要的行为。如果您的应用程序有多个窗口打开,您希望Alt-F4或X退出该应用程序,还是只关闭活动窗口?


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 698 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信