У меня есть JTable, и мне нужно удалить строку, а именно выбранную строку.
Итак, во-первых, я получаю модель стола:
DefaultTableModel model = (DefaultTableModel) table.getModel();
Затем выбранная строка (если выбрана вторая строка, возвращается 1, что понятно, поскольку строки начинаются с нуля):
int selectedRow = table.getSelectedRow();
Затем я пытаюсь удалить строку:
model.removeRow(selectedRow);
Затем я снова устанавливаю модель стола:
table.setModel(model);
То, что это достигает, удаляет совершенно случайную строку. Я просто не могу понять почему. В какой-то момент я отсортировал таблицу, используя table.setRowSorter (сортировщик), но я не знаю, почему это должно быть проблемой. Если SSCCE абсолютно необходим, пожалуйста, дайте мне знать, потому что у меня есть много кода для изменения, прежде чем я смогу его создать.
ПРИМЕЧАНИЕ. Значения, возвращаемые этими двумя строками, отличаются:
System.out.println(table.getValueAt(selectedRow, 1));
System.out.println(model.getValueAt(selectedRow, 1));