窗口dispose()

benpolice 2012-04-16 06:02:19
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的垃圾回收机制的原因没有被回收,还是保存了一部分资源?

望不吝赐教!
...全文
92 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
为乐.rookie 2012-04-16
  • 打赏
  • 举报
回复
System.gc() 不能保证立即回收,回收的时间和方式取决了jvm实现

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧