我最近在做一个基于Swing的聊天工具,现在在做窗体的隐藏时遇到一个郁闷的问题,需要请教各位高手啦~~
在窗体隐藏是我用了setVisible(false),显示时用的setVisible(true),但是显示时发现,窗口里的用户列表和聊天信息全部被清空了,也就是说是给我重新绘制了一个新的窗体,原来的窗体永远消失了(后台的连接还在),请问swing的setVisible方法会产生这样的情况吗?还是我的代码有问题?
分布多,请见谅~~
在窗体隐藏是我用了setVisible(false),显示时用的setVisible(true),但是显示时发现,窗口里的用户列表和聊天信息全部被清空了,也就是说是给我重新绘制了一个新的窗体,原来的窗体永远消失了(后台的连接还在),请问swing的setVisible方法会产生这样的情况吗?还是我的代码有问题?
分布多,请见谅~~
setVisible(false)前应该保存窗口的引用
其中没有写super.paint(g)
使子控件没有被绘制?
还是贴出代码吧
我个人的看法是:setVisible方法不会导致窗口重绘。出现这种情况多半是因为你在某个地方不小心触发了窗体重绘、或是很不幸地重新生成了用于存放聊天信息的控件。
建议如下:
1、仔细检查代码,尤其注意检查带有 new 的地方。因为在这些地方多半会重新生成类实例。
2、如果上面的方法无法解决,你可以通过将聊天窗口最小化,同时不在任务栏中显示的替代办法。
3、因为没有看到代码,所以暂时没有更好的方法。一切以实践为准。
你可以将程序发至