java - JDialog 关闭时内存泄漏

标签 java swing memory-leaks jdialog

我正在开发一个 Java 应用程序,该应用程序由常规窗口 (JFrame) 和第一个菜单项调用的 JDialog 组成:

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 时,程序都会消耗越来越多的内存。为什么?

最佳答案

关于java - JDialog 关闭时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15863178/

相关文章:

java - 更改屏幕旋转时 ViewPager fragment 消失

java - 在不调用所需的初始化方法的情况下防止子类实例化的正确方法?

java - 如何在 java swing 应用程序中使用 Windows NT 登录凭据进行用户身份验证?

java - 在Runtime.execute()中输入参数并通过java swing应用程序继续执行cmd命令

java - 使用 Hibernate 的 Java Web 服务中的内存泄漏

java - 是否可以使用 try-catch 语句修补内存泄漏?

java - 如何在 Spring 处理 400,404,500,501 等?

java - 自定义 TableModel 中的 NullPointerException

java - 使用 JNA 的 Memory 类是否存在内存泄漏问题?

下拉按钮弹出窗口中的 JavaFX CheckBoxTree