笔者没有找到比较系统的swing插件的用法,各种尝试分析,找到了解决表格刷新的问题
一开始以为是Connection的问题,以为连接要重置了才能刷新,但是尝试每一次重新连接了之后的效果并没有什么变化,既然数据源是没有问题的,那就是绘图层的问题。同时也理解到,只要Connection连接成功了,再次获取数据库中的数据是不需要重新连接的。虽然问题解决后觉得开始的怀疑很傻,但是通过实践得到的理解很令人开心
问题描述
在数据库中添加数据后,点击刷新按钮后,无反应,拉大窗口或者放大窗口后,出现这样的界面,很明显是后来绘制的图像被前面绘制的图像挡住了
突然发现窗口界面与数据库中数据的排序有差异,进一步印证了AbstractTableModel, DefaultTableModel 与jtable的映射关系
解决方法
网上搜了很多方法都不能解决,然后试了一下这位博主的解决方法,奏效了,文章链接http://blog.csdn.net/qf0129/article/details/49494503
当然,初始化界面与刷新重绘的先后顺序也很重要,暂时还不清楚,
可惜还是不明白。暂时理解为removeAll()和repaint()搭配使用为何达不到这样的效果,如果有博友知晓,希望告知
在Stack Overflow上面查到当更新可见的GUI时,用revalidate()
暂时理解为removeAll()用于删除add()方法添加的控件
revalidate()能将容器内部连同布局彻底清空