如何删除对话框引用的对象?

jos*_*eph 10 java swing

我在其中创建了一个带有jpanel的对话框,如果我删除了对话框,仍会引用jpanel.当我点击取消按钮时,我想破坏该对话框及其中的所有内容.如何删除对话框和jpanel?

Dav*_*kes 10

回答你在评论中提出的问题:

显示对话框后:

setVisible(true);
Run Code Online (Sandbox Code Playgroud)

你通过调用隐藏它:

setVisible(false);
Run Code Online (Sandbox Code Playgroud)

然后你必须打电话:

dialog.dispose();
Run Code Online (Sandbox Code Playgroud)

确保释放所使用的对话框的所有本机GUI资源.完成此操作后,垃圾收集器将在您不再引用所有对象时清理所有对象.


Lal*_* J. 5

  1. 如果它是一个窗口,如果它是可见的

    I. frame.setVisible(false);

    II.frame.dispose();

    II.将引用设置为null(ex .. frame = null;)

  2. 如果它不是一个窗口

    I.set对null的引用(ex .. x = null;)

这是所有,一旦对象是免费的GC将腾出的资源时,它像.

以下是你必须了解的事情

*.你作为Java程序员不能强迫Java中的垃圾收集; 它只会在JVM认为需要基于Java堆大小的垃圾收集时触发.

*.有一些方法,如System.gc()Runtime.gc(),用于将垃圾收集请求发送到JVM,但不能保证垃圾收集会发生.

*.如果没有用于在堆中创建新对象的内存空间,则Java虚拟机会抛出OutOfMemoryError或java.lang.OutOfMemoryError堆空间

并搜索这个......

J2SE 5(Java 2标准版)增加了一项名为Ergonomics的新功能.人机工程学的目标是通过最少的命令行调整从JVM提供良好的性能.