java代码修改、删除数据之后刷新JTable的方法
String userTitle[] = {"ID","用户名","密码","邮箱","名字","等级"}; tab = new Object[userInfoNumber][6];
Iterator<User> iter = userList.iterator();
while(iter.hasNext()){
User user = iter.next();
tab[i][0] = user.getId();
tab[i][1] = user.getUserName();
tab[i][2] = user.getPwd();
tab[i][3] = user.getMail();
tab[i][4] = user.getName();
whatGrade = user.getGrade() == 1 ? "管理员" : "普通会员";
tab[i][5] = whatGrade;
i ++;
}
DefaultTableModel tableModel = new DefaultTableModel(tab,userTitle);
JTable table = new JTable(tableModel);
for(int j = 0;j < table.getRowCount();j ++){
//获得删除时选择的ID在JTABLE中的行号
成都网站推广
if(Integer.parseInt(table.getValueAt(j, 0).toString()) == id){
int selIndex = j;
if( selIndex < 0 || selIndex >=table.getRowCount() ){
return ;
}
//删除这一行
tableModel.removeRow(selIndex) ;
//刷新
tableModel.fireTableDataChanged();
break;
}
}
如果是更新数据的话,只需
tableModel.fireTableDataChanged();
做一个Listener,实现三个接口:
ListSelectionListener..
TableColumnModelListener..
TableModelListener..
然后分别实现valueChanged,columnSelectionChanged,tableChanged方法其他方法就不用实现了,
定义两个整形变量row,col。row在valueChanged中获得值,col在columnSelectionChanged中获得值。
然后将这个监听器加到你的表格上,选中时就能得到行,或者列的值了,也就是被修改的行