http://www.cnblogs.com/fnlingnzb-learner/p/6025408.html

注意下面几个方法的应用场景,不限于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()

重绘此组件。

如果此组件是轻量组件,则此方法会尽快调用此组件的 paint 方法。否则此方法会尽快调用此组件的 update 方法。

public void updateUI

UIManager 发出的关于 L&F 已经更改的通知。用 UIManager 的最新版本替换当前的 UI 对象。覆盖: 类 JComponent 中的 updateUI另请参见:

JTable动态刷新数据的更多相关文章

  1. echarts动态刷新数据

    在这次的项目中图表显示的部分比较多,这边给分享下用到的图表的数据刷新 饼图最后的效果 先看下 前端部分 <div div style="height: 40%; width: 17.5 ...

  2. jtable更新数据

    static JTable table; public void refrushTableData() { String[] columnNames = { " }; String[][] ...

  3. swing JTable 更新数据

    rowData 是将要更新的表格内数据,coloumnName是将要更新的表头数据. table是原本的table对象,更新数据的时候要用 DefaultTableModel 类~ /*更新table ...

  4. Highcharts 多个Y轴动态刷新数据

    效果图: js代码: $(function() { $(document).ready(function() { Highcharts.setOptions({ global: { useUTC: f ...

  5. JavaSE GUI显示列表 JTable的刷新 重新加载新的数据

    JTable在显示所有数据之后,假如需要搜索某个名字,则会获取新的列表数据. 假设datas是JTable的数据,定义为: private Vector<Vector> datas = n ...

  6. javascript之数据推送

    我们使用ajax与后台服务进行交互,常常是通过触发事件来单次交互,但对于有些web应用来说,需要前台与后台保持长连接,前端不定时地接收后台推送的数据信息, 例如:股票行情分析.聊天室和网页在线游戏等. ...

  7. 【Java】JTable组件的构造函数和设置列宽

    使用JTable组件 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JCompone ...

  8. Swing之JTable的详细介绍(转)

    表格(Table)的使用与介绍8-1:使用JTable组件:类层次结构图:java.lang.Object--java.awt.Component--java.awt.Container--javax ...

  9. echarts异步数据加载(在下拉框选择事件中异步更新数据)

    接触echarts 大半年了,从不会到熟练也做过不少的图表,隔了一段时间没使用这玩意,好多东西真心容易忘了.在接触echarts这期间也没有总结什么东西,今天我就来总结一下如何在echart中异步加载 ...

随机推荐

  1. Kotlin基础(五)Kotlin的类型系统

    Kotlin的类型系统 一.可空类型 //s为null的话编译器会报错,没问号不能为空 fun strLen(s : String)=s.length //如果允许s为空可: fun strLen2( ...

  2. [jzoj]1229.Hanoi

    Link https://jzoj.net/senior/#main/show/1229 Description Mpq 小时候只玩过俄罗斯方块这个经典的小游戏,当时他还不知道Hanoi 究竟是什么东 ...

  3. cookies和session

      基于cookies做用户验证时,敏感信息不适合放在cookies中 cookies保存在客户浏览器端的键值对 session保存在服务器端的键值对(依赖于cookies),把用户浏览器中的cook ...

  4. python之模块2

    1.logging模块 等级 debug--->info--->warning(默认)--->error--->critical 配置两种方式: #1.congfig函数 lo ...

  5. Ubuntu下实验安装

    1.Ubuntu下安装sublime : http://www.linuxidc.com/Linux/2015-01/112137.htm 2.http://www.linuxidc.com/Linu ...

  6. 如何修改maven的默认jdk版本

    问题: 1.创建maven项目的时候,jdk版本是1.5版本,而自己安装的是1.7或者1.8版本. 2.每次右键项目名-maven->update project 时候,项目jdk版本变了,变回 ...

  7. mysql -- this is incompatible with sql_mode=only_full_group_by

    select @@GLOBAL.sql_mode; set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ER ...

  8. Elastic{ON}参会随手记

    Elastic{ON} 同事送了一张Elastic{ON}的票,因为我们的产品中用到的ELK全家桶,实话说用的体量还挺大的,因此非常想去参加这次的发布会. 7.0的新特性 上午的会议是来自总部的一名工 ...

  9. Java全栈程序员之06:IDEA中MAVEN项目依赖及运行

    MAVEN已经成为事实上的企业项目开发中的项目类型.无论是IDEA还是Eclipse,都已经默认支持创建MAVEN项目.严格意义上来说,MAVEN不是一种新的JavaEE项目类型.它凌驾于所以的项目类 ...

  10. Zip文件和RAR文件解压

    直接上工具类: package com.ksource.pwlp.util; import java.io.File; import java.io.FileOutputStream; import ...