如何以编程方式关闭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));
ABOUTYOU
TA贡献1812条经验 获得超5个赞
setVisible(false); //you can't see me!dispose(); //Destroy the JFrame object
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
如果Alt-F4或X的意思是“立即退出应用程序,而不考虑其他Windows或线程正在运行的情况”,那么System.exit(...)
就行了一点儿没错你想要的是一种非常突然的,野蛮的,可能是有问题的方式。
如果你所说的Alt-F4或X是指隐藏窗口,那么frame.setVisible(false)
就是你如何“关上”窗户。该窗口将继续消耗资源/内存,但可以很快使其再次可见。
如果Alt-F4或X的意思是隐藏窗口并释放它正在消耗的任何资源,那么frame.dispose()
就是你如何“关上”窗户。如果框架是最后一个可见窗口,并且没有其他非守护进程线程正在运行,程序将退出。如果再次显示窗口,则必须再次重新初始化所有本机资源(图形缓冲区、窗口句柄等)。
dispose()
可能最接近你真正想要的行为。如果您的应用程序有多个窗口打开,您希望Alt-F4或X退出该应用程序,还是只关闭活动窗口?
添加回答
举报
0/150
提交
取消