我有一个带有 GUI 的程序,它的段可以很大并且包含很多对象。我的程序的功能之一是“关闭”该段并创建一个新段。
这整个段仅通过一个 JPanel 和一个 ArrayList 附加到程序。如果我将这两个处理/设置为 null,则应该无法访问任何 JPanel 子项(其中一个是扩展 GUI 组件的复杂对象,但也包含很多变量)。
如果我是正确的,垃圾收集器将收集所有 JPanel 子项。
然而,孩子们的孩子们怎么办?我有一些“家庭”可以达到 5-6 个“世代”。它们只会在 GC 的第 5 次(或第 6 次)通过时被删除,还是会检测到整个“家庭”无法访问并立即收集(或在第一次通过时)?
编辑:另一个小问题:swing 组件是否有一种方法可以删除所有子组件?