关闭Java的JFrame退出

use*_*246 50 java jframe

我不知道如何使用此代码:

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)

使用x按钮关闭程序.

Jai*_*zel 77

你需要这条线

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)

因为按下X按钮时JFrame的默认行为相当于

frame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)

所以几乎所有时候你都需要在创建JFrame时手动添加该行

我目前指的是常数WindowConstants一样WindowConstants.EXIT_ON_CLOSE的,而不是直接在声明的同一常数JFrame与现有更好地反映意图.

  • +1用于标识帧的正确默认操作/行为.OTOH通常最好确保没有其他非守护程序线程正在运行,并将帧退出操作设置为`JFrame.DISPOSE_ON_CLOSE`. (2认同)

Jef*_*rey 6

如果你没有它,JFrame将被处理掉.框架将关闭,但应用程序将继续运行.

  • 实际上我认为jaime是迄今为止唯一完全正确的.如果放置了一个框架并且没有运行非守护程序线程,则JRE**将退出. (3认同)

Bri*_*man 5

调用setDefaultCloseOperation(EXIT_ON_CLOSE)正是这样做的。当应用程序从操作系统接收到关闭窗口事件时,它会导致应用程序退出。按窗口上的关闭(X)按钮会导致操作系统生成关闭窗口事件并将其发送到您的 Java 应用程序。关闭窗口事件由 Java 应用程序中的 AWT 事件循环处理,它将退出应用程序以响应该事件。

如果不调用此方法,AWT 事件循环可能不会响应关闭窗口事件而退出应用程序,而是让它在后台运行。