我有一个JTable,我需要删除一行,即选中的行。JTable removeRow(),删除错误的行
因此,首先,我得到的表格模型:
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));
像往常一样,简短,简洁和精确。谢谢! :) – David