如何以编程方式关闭 JFrame

2022-08-31 05:18:02

获取关闭的正确方法是什么,就像用户点击关闭按钮或按 +(在 Windows 上)一样?JFrameXAltF4

我通过以下方式以我想要的方式设置了默认关闭操作:

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

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

我真正想做的是使GUI的行为方式与按下关闭按钮会导致其行为相同的方式。X

假设我要扩展,然后通过 添加适配器的实例作为侦听器。我希望通过 、 看到相同的调用顺序,并且与关闭按钮一样。可以这么说,与其说是撕毁窗户,不如说是告诉它把自己撕碎。WindowAdaptoraddWindowListener()windowDeactivated()windowClosing()windowClosed()X


答案 1

如果希望 GUI 的行为就像单击了关闭按钮一样,则需要将窗口关闭事件调度到 。“关闭应用程序”允许您将此功能添加到菜单项或易于使用 s 的任何组件中。XWindowExitActionAction

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

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

不是太棘手。


推荐