public void dispose() 释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机。
我想问一下,怎么理解“屏幕资源”?是还有其他资源没有被释放,只是清除显存的内容吗?
自己写了个代码:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test 
{    
     JFrame w1;
     JFrame w2;
     JButton b1;
     JButton b2;
    public Test()
   {
        w1=new JFrame();
        w2=new JFrame();
        b1=new JButton("show");
        b2=new JButton("hide");
        b1.addActionListener(new myListener1());
        b2.addActionListener(new myListener2());
        w1.add(b1,BorderLayout.NORTH);
        w1.add(b2);
        w1.pack();
        w1.setLocation(100, 100);
        w1.setVisible(true);
        
        
            }
    public static void main(String[] args) {
        // TODO code application logic here
      new Test();
        
    }
    class myListener1 implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e) 
            {
                w2.setVisible(true);
            }
    }
    class myListener2 implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            w2.dispose();
            System.gc();
            
            System.out.println(w2);
        }
    }
}在点击Hide之后,点击Show总能显示窗口。我搞不清楚是由于java的垃圾回收机制的原因没有被回收,还是保存了一部分资源?望不吝赐教!