我有一个带有GUI的程序,它可以很大并且包含很多对象。我的计划的一个特点是"关闭"细分并创建一个新细分。
整个段只通过一个JPanel和一个ArrayList附加到程序中。如果我将这两个处理/设置为null,则应该无法访问任何JPanels childen(其中一个是扩展GUI组件的复杂对象,但也包含很多变量)。
如果我说得对,所有JPanels childeren都会被垃圾收集器收集。
然而,孩子的孩子会怎么样?我有一些"家庭"上升到5-6代#34;它们是仅在GC的第5(或第6)次通过时被删除,还是会检测整个"家庭"如果不可能并立即收集它(或在它的第一次通过)?
编辑:另一个小问题:是否有摆动组件的方法可以删除所有的孩子?
答案 0 :(得分:2)
答案 1 :(得分:0)
对您的问题的评论很好地解决了删除问题。但是,如果您仍然对删除组件的子项而不删除组件感到好奇,那么答案就是否定,如JComponent documentation中所示(我假设您使用的是Java 7,如果不是,您可以轻松更改到适当的Java版本)。如果您想快速轻松地从组件中删除子组件而不删除组件本身,我建议您只重新初始化组件。