您可能想看看这个问题:如何从代码中关闭 Java Swing 应用程序,因为它通常处理关闭应用程序以及如何确保它完全终止。
但要快速回答您的问题,有几种选择。
选项1
由于您JFrame在课堂上进行扩展,因此您可以使用EXIT_ON_CLOSE退出。
setDefaultCloseOperation(EXIT_ON_CLOSE);
注意: EXIT_ON_CLOSE退出所有JFrames应用程序,而不仅仅是应用程序。
选项 2
这很可能不是您想要的答案,但DISPOSE_ON_CLOSE只会关闭JFrame您正在应用它的答案。
如果您有多个JFramesopen ,或者如果您有任何其他Threads,它们将继续运行并且程序不会结束。但是如果你只有一个Thread和一个JFrame,这将关闭应用程序。
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
我的偏好
我会选择选项 1,不同意其他人。它直接绑定到JFrame而不依赖于WindowConstants,这使事情变得更清洁和更可靠。但更重要的是,它会关闭所有窗口,而不仅仅是您应用它的窗口。
尽管看起来您只有一个窗口,但Threads您的程序中的其他地方可能还有其他内部,NetBeans 将其放入其中。
为确保一切都关闭,您要使用EXIT_ON_CLOSE.
额外的信息
有关如何DISPOSE_ON_CLOSE和EXIT_ON_CLOSE不同的讨论:http: //www.coderanch.com/t/340183/GUI/java/DISPOSE-CLOSE-vs-EXIT-CLOSE
文档JFrame's EXIT_ON_CLOSE:http ://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/JFrame.html#EXIT_ON_CLOSE
DISPOSE_ON_CLOSE关于和其他的文档:http WindowConstants: //docs.oracle.com/javase/1.5.0/docs/api/javax/swing/WindowConstants.html#DISPOSE_ON_CLOSE