为什么我的JDialogs会泄漏?

Łuk*_*nik 3 java swing

我有一个JFrame,我从它打开一个JDialog和另一个来自该对话框的JDialog - menas我有3个窗口可见(JFrame,JDialog1,Jdialog2).

当我关闭两个对话框并运行几次垃圾收集器时(来自netbeans探测器)我可以看到JDialog2(从JDialog1打开的那个)是垃圾收集但是JDialog1(从JFrame打开)仍然挂在活动对象池中.

我每次都创建新对象 - 所以一段时间后我有一个OutOfMemoryError doue到内存泄漏.

我是否必须以特殊方式处理JDialogs,以免泄漏?

就我setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE) 在两个对话框上所做的方式而言,

cag*_*boy 9

您是否在对话框中取消注册了所有听众(包括其中的任何组件)?

让听众注册可能是内存泄漏的主要来源.