我有一些JPanel附加到JTabbedPane。 每个JPanel都包含存储在JTable中的大数据。
在JTabbedPane中显示选项卡后,数据被加载,分配给程序的内存从16Mb跳到60Mb。
当关闭任何Tab(通过jTabbedPane.removeTabAt(selectedIdx)
)时,我注意到分配的内存不会减少。
我做了一个“分析”和“堆内存转储”。结果是:JTable数据仍在内存中。
jTabbedPane.removeTabAt(selectedIdx)
不释放添加到JTabbedPane对象的面板中创建的所有对象?答案 0 :(得分:0)
我认为你仍然有对JTable的引用,例如你将addListener用于某个组件而不删除它。更没有代码更难说。