swing 界面实现表格刷新重绘

笔者没有找到比较系统的swing插件的用法,各种尝试分析,找到了解决表格刷新的问题

一开始以为是Connection的问题,以为连接要重置了才能刷新,但是尝试每一次重新连接了之后的效果并没有什么变化,既然数据源是没有问题的,那就是绘图层的问题。同时也理解到,只要Connection连接成功了,再次获取数据库中的数据是不需要重新连接的。虽然问题解决后觉得开始的怀疑很傻,但是通过实践得到的理解很令人开心

问题描述

在数据库中添加数据后,点击刷新按钮后,无反应,拉大窗口或者放大窗口后,出现这样的界面,很明显是后来绘制的图像被前面绘制的图像挡住了

swing 界面刷新

突然发现窗口界面与数据库中数据的排序有差异,进一步印证了AbstractTableModel, DefaultTableModel 与jtable的映射关系

jtable的映射绘制

解决方法

网上搜了很多方法都不能解决,然后试了一下这位博主的解决方法,奏效了,文章链接http://blog.csdn.net/qf0129/article/details/49494503

刷新重绘validate,repaint,revalidate

当然,初始化界面与刷新重绘的先后顺序也很重要,暂时还不清楚,
可惜还是不明白。暂时理解为removeAll()和repaint()搭配使用为何达不到这样的效果,如果有博友知晓,希望告知

在Stack Overflow上面查到当更新可见的GUI时,用revalidate()
暂时理解为removeAll()用于删除add()方法添加的控件
revalidate()能将容器内部连同布局彻底清空

点击按钮刷新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值