通过控制器重新打开新的JDialog实例

时间:2013-05-01 02:51:47

标签: java swing

我有一个附加了更改侦听器的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次,并抛出异常)。这让我相信一些垃圾收集工作没有进行。)

感谢您的任何建议。

0 个答案:

没有答案