Проблема в том, что когда кто-то сортирует по столбцу, щелкая заголовок столбца в JTable, списки в AbstractTableModel не обновляются
И это именно такон должен работать.Данные в модели никогда не должны изменяться при сортировке или переупорядочении столбцов.Это только мнение, которое меняется.
Если вы хотите получить данные из таблицы, вам следует использовать:
table.getValueAt(row, column)
, и вы получите правильное значение.Если вам нужно получить данные из модели напрямую, вам нужно использовать:
table.getModel().getValueAt(table.convertRowIndexToModel(row), column);
Идея состоит в том, чтобы иметь возможность хранить скрытый столбец "id".
Нет причин для создания собственной модели для этого.Просто сохраните все данные в DefaultTableModel.Затем вы можете удалить столбец «ID» из представления таблицы.
table.getColumnModel().removeColumn( table.getColumn("ID") );
В этом случае данные не отображаются, поэтому вы не можете использовать table.getValueAt (...).Вместо этого вы должны использовать table.getModel (). GetValueAt (...);