+-
java – JTable removeRow(),删除错误的行
我有一个JTable,我需要删除一行,即选中的行.

首先,我得到了表模型:

    DefaultTableModel model = (DefaultTableModel) table.getModel();

然后选择的行(如果选择第二行,则返回1,这是可以理解的,因为行从零开始):

    int selectedRow = table.getSelectedRow();

然后我尝试删除该行:

    model.removeRow(selectedRow);

然后我再次设置表模型:

    table.setModel(model);

这实现了删除一个完全随机的行.我根本无法理解为什么.我在某个时候使用table.setRowSorter(sorter)对表进行了排序,但我不知道为什么这应该是一个问题.如果绝对需要SSCCE,请告诉我,因为我需要修改很多代码才能生成一个.

注意:这两行返回的值不同:

    System.out.println(table.getValueAt(selectedRow, 1));
    System.out.println(model.getValueAt(selectedRow, 1));
最佳答案
如果是JTable过滤或排序,那么您可以转换

int modelRow = convertRowIndexToModel(row);
点击查看更多相关文章

转载注明原文:java – JTable removeRow(),删除错误的行 - 乐贴网