A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© whocases 黑马帝   /  2012-6-22 19:55  /  1063 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 whocases 于 2012-6-30 19:29 编辑

写一个多窗体的程序,在主窗体里点击按钮会打开另外的jframe窗体。
一开始所有窗体用的都是setDefaultCloseOperation(EXIT_ON_CLOSE),发现后打开的窗口关掉后父窗体也关了,后来知道是终止了整个虚拟机。
将子窗体jframe的退出操作改为setDefaultCloseOperation(DISPOSE_ON_CLOSE)窗口的问题解决了,发现子窗体的程序还在后台运行,求高手指教……

2 个回复

倒序浏览
public void dispose()释放由此 Window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源。即这些 Component 的资源将被破坏,它们使用的所有内存都将返回到操作系统,并将它们标记为不可显示。
回复 使用道具 举报

弹出窗口最好用JDialog,这样他会依赖父窗口,不关闭弹出窗口就不能操作父窗口
不过你如果不想用的话可以试一下dispose()
这样关的话连数据会没有,而不是像setDefaultCloseOperation那样隐藏而已

通过随后对 pack 或 show 的调用重新构造本机资源,可以再次显示 Window 及其子组件。重新创建的 Window 及其子组件的状态在移除 Window 的点上与这些对象的状态将是一样的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马