JTable removeRow(),删除错误的行

我有一个JTable,我需要删除一行,即选定的行。

所以首先,我得到表模型:

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

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

    int selectedRow = table.getSelectedRow();

然后,我尝试删除该行:

    model.removeRow(selectedRow);

然后我再次设置表模型:

    table.setModel(model);

这实现的是删除完全随机的行。我根本不明白为什么。我已经使用table.setRowSorter(sorter)对表进行了排序,但是我不知道为什么这应该是一个问题。如果绝对需要SSCCE,请告诉我,因为在生产一个SSCCE之前,我需要修改很多代码。

    System.out.println(table.getValueAt(selectedRow, 1));

System.out.println(model.getValueAt(selectedRow, 1));

回答:

如果已JTable过滤或排序,则可以转换

int modelRow = convertRowIndexToModel(row);

以上是 JTable removeRow(),删除错误的行 的全部内容, 来源链接: utcz.com/qa/403974.html

回到顶部