JTable动态刷新数据
数据 动态 刷新
2023-09-11 14:19:34 时间
最近在做一个纯java有关的小软件,因为需要做前端,所以我用到了swing。swing里面涵盖的细节真的是太多了,稍一不留神,你的软件就面临易崩溃或者界面极度丑陋的状况。不多说了,谈谈这次的主题JTable吧。
由于我的软件需要定时刷新界面,所以需要对JTable进行实时更新,但又不仅仅是单纯的添加数据,所以造成了很多麻烦。
其实最简单的,你用 Vector 做 table 的模型的话,只要改变 Vector 中的数据,updateUI,表格就刷新了。其中,第一个是个 Vector 的 Vector,是 data,就是说先把一行的 data 放在一个 Vector 里,然后把这些行Vector 放到一个总的 Vector 里,而第二个是 Vector是title。
直接上代码吧:
1 private void InitTable() { //初始化table 2 InitColumnName(); 3 InitRowData(); 4 tableModel = new DefaultTableModel(rowData, columnName); 5 table = new JTable(tableModel); 6 TableColumn firstColumn = table.getColumnModel().getColumn(0); 7 firstColumn.setMaxWidth(150); 8 firstColumn.setMinWidth(150); 9 TableColumn secondColumn = table.getColumnModel().getColumn(1); 10 secondColumn.setMaxWidth(80); 11 secondColumn.setMinWidth(80); 12 TableColumn thirdColumn = table.getColumnModel().getColumn(2); 13 thirdColumn.setMaxWidth(60); 14 thirdColumn.setMinWidth(60); 15 TableColumn fourthColumn = table.getColumnModel().getColumn(3); 16 fourthColumn.setMaxWidth(120); 17 fourthColumn.setMinWidth(120); 18 TableColumn fifthColumn = table.getColumnModel().getColumn(4); 19 fifthColumn.setMaxWidth(150); 20 fifthColumn.setMinWidth(150); 21 TableColumn sixthColumn = table.getColumnModel().getColumn(5); 22 sixthColumn.setMaxWidth(120); 23 sixthColumn.setMinWidth(120); 24 }
定时刷新:
1 tableModel.getDataVector().clear(); 2 InitRowData(); 3 //table.validate(); 频繁刷新造成空指针异常 4 //table.updateUI(); 5 scrollPane.validate(); 6 //scrollPane.updateUI();
附录:
public void validate()
验证此容器及其所有子组件。
使用 validate
方法会使容器再次布置其子组件。已经布置容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。
public void repaint()
重绘此组件。
如果此组件是轻量组件,则此方法会尽快调用此组件的paint
方法。否则此方法会尽快调用此组件的update
方法。
public void updateUI
UIManager 发出的关于 L&F 已经更改的通知。用 UIManager 的最新版本替换当前的 UI 对象。覆盖: 类 JComponent 中的 updateUI另请参见:
转载请注明出处:http://www.cnblogs.com/fnlingnzb-learner/p/6025408.html
相关文章
- CDGA|数据治理的关键方法是什么?
- (NO.00005)iOS实现炸弹人游戏(六):游戏数据的初始化(三)
- 利用 Flask 动态展示 Pyecharts 图表数据的几种方法
- Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
- Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
- Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
- Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
- Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
- Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
- Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
- Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
- Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
- Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
- boke例子: freermarker:在使用ajax传递json数据的时候多出冒号
- 数据统一的七原则
- 页面滚动动态加载数据,页面下拉自动加载内容
- 读书笔记--SQL必知必会04--过滤数据
- 页面滚动动态加载数据,页面下拉自动加载内容
- vue.js 3.2.6 解决swiper动态加载数据时默认显示最后一页(swiper@6.8.4)
- Qt编写物联网管理平台41-自动清理早期数据
- c#保存datagridview中的数据时报错 “动态SQL生成失败。找不到关键信息”
- C# chart绑定数据的方式整理
- Dataset:数据集集合(NLP方向数据集)——常见的自然语言处理数据集大集合(建议收藏,持续更新)
- TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(matplotlib动态演示)
- Python实现酷炫的动态交互式数据可视化,附代码
- qml 结合 QSqlTableModel 动态加载数据 MVC
- 利用 Flask 动态展示 Pyecharts 图表数据的几种方法
- 被Altair圈粉了!Python数据可视化又来一位猛将!
- Pytorch之Variable与tensor--它封装了Tensor,并整合了反向传播的相关实现,像装糖果(糖果就是数据即tensor)的盒子
- Go Programming Blueprints 读书笔记(谈到了nsq/mgo处理数据持久化,可是业务逻辑不够复杂)
- 从pymongo 提取最近100条数据
- WPF中TreeView控件数据绑定和后台动态添加数据(一)
- 行人重识别0-03:DG-Net(ReID)-模型评估验证,数据集讲解
- 【SPSS】数据预处理基础教程(附案例实战)