Java Swing销毁Frame问题

@SmartSi
博客专家认证
2015-06-16 11:37:33
对于一个frame来说使用dispose 进行关闭 现象是 窗体消失了.但是程序并没有退出.没有释放.
我再次new 该frame时该窗体并不会出现。

请教怎么彻底销毁一个frame
多次new 该frame时都会成功
...全文
923 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
风铃浩 2015-06-17
  • 打赏
  • 举报
回复
猜测楼主在主窗口内使用了一个变量来记住新建窗口的对象,并在事件中判断该变量是否为空来决定是否创建新窗口。 楼主使用dispose释放了原来的窗口,却没有将该变量置空,导致逻辑错误,所以不会新建窗口。 Java中当一个对象不再被引用,则会在一定时间内被回收,因此你在dispose之后,将该窗口变量置空,就能够彻底摧毁它。
finemi 2015-06-17
  • 打赏
  • 举报
回复
dispose 是释放资源,具体释放什么资源是该类自己决定释放自己类中的某属性之类。 但并不是说将自己本身这个对象除掉,要达到这个效果将本身对象变量设置为null,虽然从JVM角度讲该对象还将存在一段时间但是你使用上不会有问题了。
@SmartSi 2015-06-16
  • 打赏
  • 举报
回复
引用 1 楼 finemi 的回复:
new 之后要setVisiable(true) 要退出程序System.exit(0)
这样还是不行 你调用System.exit(0) 会导致产生new frame动作的那个frame销毁
nj_dobetter 2015-06-16
  • 打赏
  • 举报
回复
对的。 new 之后要setVisiable(true) 要退出程序System.exit(0)
finemi 2015-06-16
  • 打赏
  • 举报
回复
new 之后要setVisiable(true) 要退出程序System.exit(0)

62,614

社区成员

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

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