我有一个附加了更改侦听器的JComboBox。 JComboBox是JDialog类中的一个组件。 控制器类处理JComboBox的更改。 像这样:
class Controller {
ExtDialog ext;
//handle the on change
public void handleChange() {
this.ext = new ExtDialog();
this.ext.setVisible(true);
}
}
class ExtDialog extends JDialog {
//Controller c;
//JComboBox etc...
//on change action listener for JComboBox
public void onChange() {
this.setVisible(false);
//where to destroy "this" instance
this.c.handleChange();
}
}
当在JComboBox中发生选择更改时,ExtDialog的当前实例将关闭并触发控制器打开具有新属性的新ExtDialog(基于JComboBox的选择)。
我的问题只是如何在打开新的实例之前正确删除ExtDialog实例的当前实例。
(当前场景确实有效,但是,我发生了一个奇怪的错误,只有在大约90次选择更改后才会发生这种情况(这是测试我只是在JComboBox中选择不同的选项超过90次,并抛出异常)。这让我相信一些垃圾收集工作没有进行。)
感谢您的任何建议。