我有一個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