浅析修改、删除数据后刷新JTable的方法

时间:2021-06-17 07:24:04
    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中获得值。
然后将这个监听器加到你的表格上,选中时就能得到行,或者列的值了,也就是被修改的行