2

如果创建了一个 JPanel,然后使用这些规则添加了一些 JComponent

public class MyPanel extends JPanel {
    myButton = new MyButton()
    myButton.addXxxListener(...)
    myButton ....
    add(myButton)
}

public class MyButton extends JButton {
    //some constructors for parametrize JButton Object
    //build only JButton Object value or listener(s) are added in parent 
}
//and on runtime are all values added by using constructor or getter/setter 

那么如果我想从 JDialog 中正确删除这个 JPanel(删除所有引用并将其处理给 GC)我必须

1/ 1 日。必须从 JPanel 中删除 JComponents,然后从 JDialog 中删除 JPanel

2/ 直接从 JDialog 中移除 JPanel

4

1 回答 1

2

只要您不从其他对象引用它的任何子组件,只需删除面板和所有侦听器就足够了。

于 2011-06-04T12:04:17.103 回答