java jtable刷新_Java JTable 实现数据动态更新

问题出现:

设计局域网之间文件传输的软件的时候,想要动态更新用户列表JTable中数据的内容;

实现思想:

每次用户列表数据更新的时候重新设置JTable中的数据,然后调用jtable.setUI()更新JTable控件的数据;

注意问题:

每次要先清空JTable中的数据,因为JTable中的数据就是userdata中的数据,而userdata的数据是通过add加进去的,所以之前的数据一直在;重新调用setUserTableData 的时候,是在JTable中添加数据;

添加到userdata中的row要每次重新new,row代表的行;new一个新的row代表新增加一行,没有重新new那么row。add("数据")中的数据是加在每行的行尾,而不是新行;

错误方式:

public void setUserTableData() {

//设置usertable数据;

//((DefaultTableModel)usertable.getModel()).getDataVector().clear();

//清空table的数据,重新写入;

Vector row = new Vector(); //错误

for(int i = 0;i < userList.size(); i++){

row.add(userList.get(i));

userdata.add(row);

}

Vector title = new Vector();

title.add("在线用户列表");

dtmView = new DefaultTableModel(userdata, title);

this.usertable.setModel(dtmView);

jth = this.usertable.getTableHeader();

}

正确方式:

public void setUserTableData() {

//设置usertable数据;

((DefaultTableModel)usertable.getModel()).getDataVector().clear();

//清空table的数据,重新写入;

Vector row = null;

for(int i = 0;i < userList.size(); i++){

row = new Vector();

row.add(userList.get(i));

userdata.add(row); // 添加数据到userdata中

}

Vector title = new Vector();

title.add("在线用户列表");

dtmView = new DefaultTableModel(userdata, title); //添加userdata到JTable中

this.usertable.setModel(dtmView);

jth = this.usertable.getTableHeader();

}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值