1

我有一个 JFRAME,它的 setDefaultCloseOperation 为 JFrame.DISPOSE_ON_CLOSE。但问题是它的大部分线程在被处理后都没有关闭。如果我把它放在 JFrame.Exit_ON_CLOSE 我的整个系统退出,这不是我想要的。有没有办法在关闭后处理并完全释放它的所有线程和资源,而不是让我的所有系统退出?

4

2 回答 2

2

如此处所示主机平台为顶级容器的重量级对等方分配的一些内存可能在 JVM 退出之前不会被回收。权宜之计是使用单个顶级容器。JVM在正常执行过程中可能会使用多个宿主线程;分析您的应用程序以识别泄漏。例如,将活动线程显示与线程转储进行比较可能会有所帮助。

于 2013-07-01T11:10:55.247 回答
-1

EXIT_ON_CLOSE 将退出应用程序。您必须手动清除 JFrame 和(用户调用的任何线程)。使用

frame.dispose();
  1. 将一个窗口关闭的侦听器附加到 JFrame
  2. 触发时使用 dispose 方法,然后清除 swing 元素和(杀死用户调用的线程)。

    这将使所有其他窗口保持打开状态。
于 2013-07-01T08:52:49.807 回答