猿问

如何以编程方式关闭JFrame

如何以编程方式关闭JFrame

得到一个JFrame若要关闭,与用户按下X关闭按钮,或按下ALT+F4(在Windows上)?

我的默认关闭操作设置为我想要的方式,通过:

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

它完全符合我对上述控件的要求。这个问题不是关于那个的。

我真正想做的是让GUI以与X关闭按钮会导致它的行为。

假设我要WindowAdaptor然后将我的适配器的一个实例作为侦听器添加到addWindowListener()..我想看到同样的通话顺序windowDeactivated()windowClosing(),和windowClosed()将发生在X关闭按钮。与其说是撕碎窗户,不如说是让它撕碎自己,可以这么说。


四季花海
浏览 699回答 3
3回答

守候你守候我

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

ABOUTYOU

setVisible(false); //you can't see me!dispose(); //Destroy the JFrame object不太棘手。

米琪卡哇伊

如果Alt-F4或X的意思是“立即退出应用程序,而不考虑其他Windows或线程正在运行的情况”,那么System.exit(...)就行了一点儿没错你想要的是一种非常突然的,野蛮的,可能是有问题的方式。如果你所说的Alt-F4或X是指隐藏窗口,那么frame.setVisible(false)就是你如何“关上”窗户。该窗口将继续消耗资源/内存,但可以很快使其再次可见。如果Alt-F4或X的意思是隐藏窗口并释放它正在消耗的任何资源,那么frame.dispose()就是你如何“关上”窗户。如果框架是最后一个可见窗口,并且没有其他非守护进程线程正在运行,程序将退出。如果再次显示窗口,则必须再次重新初始化所有本机资源(图形缓冲区、窗口句柄等)。dispose()可能最接近你真正想要的行为。如果您的应用程序有多个窗口打开,您希望Alt-F4或X退出该应用程序,还是只关闭活动窗口?
随时随地看视频慕课网APP

相关分类

Java
我要回答