JTable动态刷新数据
2017-09-29 16:16
204 查看
http://www.cnblogs.com/fnlingnzb-learner/p/6025408.html
注意下面几个方法的应用场景,不限于JTable,其他swing组件一样
————————————————————————————————————————————————————————————————————————————————
由于我的软件需要定时刷新界面,所以需要对JTable进行实时更新,但又不仅仅是单纯的添加数据,所以造成了很多麻烦。
其实最简单的,你用 Vector 做 table 的模型的话,只要改变 Vector 中的数据,updateUI,表格就刷新了。其中,第一个是个 Vector 的 Vector,是 data,就是说先把一行的 data 放在一个 Vector 里,然后把这些行Vector 放到一个总的 Vector 里,而第二个是 Vector是title。
直接上代码吧:
定时刷新:
附录:
使用
public void updateUI
UIManager 发出的关于 L&F 已经更改的通知。用 UIManager 的最新版本替换当前的 UI 对象。覆盖: 类 JComponent 中的 updateUI另请参见: [/code]
注意下面几个方法的应用场景,不限于JTable,其他swing组件一样
————————————————————————————————————————————————————————————————————————————————
JTable动态刷新数据
最近在做一个纯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() 重绘此组件。 如果此组件是轻量组件,则此方法会尽快调用此组件的 [code]paint方法。否则此方法会尽快调用此组件的
update方法。
public void updateUI
UIManager 发出的关于 L&F 已经更改的通知。用 UIManager 的最新版本替换当前的 UI 对象。覆盖: 类 JComponent 中的 updateUI另请参见: [/code]
相关文章推荐
- java JTable 动态拉取数据显示及自动刷新
- JTable动态刷新数据
- JTable的使用示例,实现动态更新数据
- 滚屏加载--无刷新动态加载数据技术的应用
- 无刷新动态加载数据,滚动条加载
- HighCharts动态数据刷新
- jquery ajax刷新局部页面,取得数据后,动态的在前台显示
- Java 动态向 JTable 中添加数据
- 动态增加分组报表组内数据并刷新页面
- java之swing中Jtable的动态一列中的每行的Jcombobox显示不一样的数据
- 动态刷新listview数据
- 无刷新动态加载数据 滚动条加载适合评论等页面
- bootStrap table动态刷新数据
- PHP+jQuery实现滚屏无刷新动态加载数据功能详解
- AngularJS+Echarts利用Ajax实现数据动态刷新
- 滚屏无刷新动态加载数据
- echarts实现动态传入数据刷新【可执行】
- 1.MVC框架复习 2.Ajax加强 3.搜索建议 4,三级联动 5、刷新分页 6、Ajax局部动态更新数据
- 动态载入数据的无刷新TreeView控件(3)
- 利用JQuery+Ajax实现aspx页面无刷新的动态数据绑定