java关闭窗口的疑惑

zr_dixuexiongying 2008-02-21 12:16:28
请问一下

addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent event)
{
Window window = event.getWindow();
window.dispose();
System.exit(0);
}
});

和public void windowClosing(WindowEvent event)
{
System.exit(0);
}
有什么区别呢?下面那一句也是关闭窗口啊!不是和上面那一段代码实现一样的效果吗?那么还要
Window window = event.getWindow();
window.dispose();
这两句有什么意义呢?这上面两句是有什么做用的啊
...全文
1300 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Godkill 2008-02-21
  • 打赏
  • 举报
回复
我个人对DISPOSE()和SYSTEM.EXIT(0)之间的关系看法是。DISPOSE只是关闭窗口。单没有结束进程。而SYSTEM.EXIT(0)是结束整个程序。。也就是说。你如果一个程序有两个窗口那么。用DISPOSE只关闭其中一个窗口,而用SYSTEM.EXIT(0)就会把两个窗口都关闭。
xiaoyu_air 2008-02-21
  • 打赏
  • 举报
回复
手动释放内存

就象Socket连接后要用Close();

不过个人认为没必要写那麻烦。
kokobox 2008-02-21
  • 打赏
  • 举报
回复
哥们,这么晚了还在线啊,帮你顶下
wuxo84 2008-02-21
  • 打赏
  • 举报
回复
window.dispose();先关闭窗口,释放内存空间
System.exit(0); 再整个退出系统
如果你是想退出整个系统 直接写第二句就成
dracularking 2008-02-21
  • 打赏
  • 举报
回复
终止方式不一样
dispose是通过释放资源的方式
exit是直接关闭虚拟机
只是对外的表现貌似无差别而已
magic256 2008-02-21
  • 打赏
  • 举报
回复
System.exit(0);直接关闭了虚拟机进程
个人认为第一段代码的window.dispose()完全是多余。。。
这个dispose()方法的调用反而会减缓窗口关闭速度,虽然你根本察觉不出来。。。
至于dispose()方法的解释:
class java.awt.window
public void dispose()
释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。
通过随后调用 pack 或 show 重新构造本机资源,可以再次显示 Window 及其子组件。重新创建的 Window 及其子组件的状态与释放 Window 时这些对象的状态一致(不考虑这些操作之间的其他更改)。


注:当 Java 虚拟机 (VM) 中最后的可显示窗口被释放后,虚拟机可能会终止。

millerhu 2008-02-21
  • 打赏
  • 举报
回复
tong同意三楼
sunguoping 2008-02-21
  • 打赏
  • 举报
回复
不怎么明白 帮忙 顶下
lsc1202001 2008-02-21
  • 打赏
  • 举报
回复
System.exit(0)
结束整个程序的运行
但关闭某个窗口并不意味着程序结束呀
Crazyboy_1987 2008-02-21
  • 打赏
  • 举报
回复
3楼讲的比较好!!!DING 了~!!!

62,615

社区成员

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

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