如何从代码中关闭Java Swing应用程序

汉斯·彼得·斯托尔:

从代码终止Swing应用程序的正确方法是什么,陷阱是什么?

我试图在计时器触发后自动关闭我的应用程序。但是,仅仅呼吁dispose()JFrame没有做的伎俩-窗口消失了,但应用程序并没有终止。但是,使用关闭按钮关闭窗口时,应用程序会终止。我该怎么办?

詹姆斯·谢克(James Schek):

您可以将JFrame的默认关闭操作设置为“ DISPOSE_ON_CLOSE”,而不是EXIT_ON_CLOSE(为什么人们继续使用EXIT_ON_CLOSE不在我的视野内)。

如果您有任何未处置的窗口或非守护进程线程,则应用程序将不会终止。应该将其视为错误(使用System.exit解决它是一个非常糟糕的主意)。

最常见的罪魁祸首是java.util.Timer和您创建的自定义线程。两者都应设置为守护程序,或者必须将其显式杀死。

如果要检查所有活动框架,可以使用Frame.getFrames()如果处理完所有Windows /框架,则使用调试器检查是否仍在运行任何非守护线程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章