用于GUI元素的垃圾收集器

Evg*_*lai 1 java swing

我在理解以下代码时遇到问题:

import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.*;

public class A
{
      public A(){
        JFrame myframe = new JFrame ("hz window");
        myframe.setLayout(new GridLayout ());
        myframe.setSize(new Dimension (500, 200));
        myframe.setVisible(true);
    }

    public static void main (String arg[]){
        new A();
        //  System.gc();                          //1
          //Runtime.getRuntime().gc();            //2
    }
}
Run Code Online (Sandbox Code Playgroud)

myframe对象的范围是A类的构造函数,对吧?

然后,为什么窗口没有消失(即,由第1行和第2行的垃圾收集器删除)

我们在java程序中创建的所有gui元素的范围是什么?

JVM在哪里保留应用程序的gui对象的所有链接?

我很抱歉新手问题.

Ese*_*gün 7

Swing保持对每个窗口对象的引用,直到用户关闭或使用dispose()函数强制处理.否则,你会看到神秘的消失GUI元素.