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的垃圾回收机制的原因没有被回收,还是保存了一部分资源?望不吝赐教!
我想问一下,怎么理解“屏幕资源”?是还有其他资源没有被释放,只是清除显存的内容吗?
自己写了个代码:
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的垃圾回收机制的原因没有被回收,还是保存了一部分资源?望不吝赐教!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货