私は、(まだ) 通常のウィンドウ (JFrame) と最初のメニュー項目によって呼び出される JDialog で構成される Java アプリケーションに取り組んでいます。
public class MainWindow {
private JFrame frame;
public MyDialog dialog;
/* ... */
private void initialize() {
mnNew = new JMenuItem("New...");
mnNew.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
dialog = new MyDialog();
}
});
}
}
そしてMyDialog
、次のように定義されています。
public class MyDialog extends JDialog {
public MyDialog() {
/* ... */
JButton cancelButton = new JButton("Cancel");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
MyDialog.this.dispatchEvent(new WindowEvent(MyDialog.this,
WindowEvent.WINDOW_CLOSING));
MainWindow.window.matchMaker = null;
}
});
/* ... */
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setVisible(true);
}
}
すべて正常に動作しますが、私のタスク マネージャーは、MyDialog を開いてから閉じるたびに、プログラムがより多くのメモリを消費することを報告します。なんで?