Стратегия обнаружения объекта в строке JTable?
Вопрос
Вот в чем дело: сортируемый JTable, поддерживаемый JTableModel массивом объектов, которые заполняют строки (один объект = одна строка). Нужно удалить строки.
Без сортировки удалить объект очень просто: получить индекс выбранной строки, удалить объект массива под тем же индексом. Однако при сортировке индексы строк портятся в том смысле, что они больше не соответствуют индексам объектов резервного массива. Как правильно это преодолеть?
Решение
Оскар был почти прав, вот как это должно быть сделано:
int selectedRow = table.getSelectedRow();
tableModel.removeRow(table.convertRowIndexToModel(selectedRow));
Другие советы
Я думаю (не совсем уверен), что есть метод, подобный " modelToView " который возвращает фактический индекс в модели, которую представляет индекс вида.
Так, например, у вас есть A, B, C, D, а затем вы сортируете desc. D, C, B, A этот метод будет возвращать 0 для индекса представления 3 (A)
Я думаю, что это было в JXTable, который поддерживает сортировку, или в JTable в Java 6.
Если вы создали эту сортировку самостоятельно, рассмотрите возможность добавления этого метода. Р>