Стратегия обнаружения объекта в строке JTable?

StackOverflow https://stackoverflow.com/questions/641065

  •  22-07-2019
  •  | 
  •  

Вопрос

Вот в чем дело: сортируемый 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.

Если вы создали эту сортировку самостоятельно, рассмотрите возможность добавления этого метода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top