Стратегия обнаружения объекта в строке JTable? - PullRequest
2 голосов
/ 13 марта 2009

Вот в чем дело: сортируемая JTable, поддерживаемая JTableModel массивом объектов, которые заполняют строки (один объект = одна строка). Нужно удалить строки.

Без сортировки удалить объект очень просто: получить индекс выбранной строки, удалить объект массива под тем же индексом. Однако при сортировке индексы строк портятся в том смысле, что они больше не соответствуют индексам объектов резервного массива. Как правильно это преодолеть?

Ответы [ 2 ]

6 голосов
/ 13 марта 2009

Оскар был почти прав, вот как это должно быть сделано:

int selectedRow = table.getSelectedRow();
tableModel.removeRow(table.convertRowIndexToModel(selectedRow));
3 голосов
/ 13 марта 2009

Я думаю (не совсем уверен), что есть метод, подобный "modelToView", который возвращает фактический индекс в модели, которую представляет индекс вида.

Так, например, у вас есть A, B, C, D, а затем вы сортируете desc. D, C, B, A этот метод будет возвращать 0 для индекса представления 3 (A)

Я думаю, что это было на JXTable, который поддерживает сортировку, или на JTable в Java 6.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...