Подтвердить что ты не робот

Java: индекс выбранных строк не изменяется при сортировке

У меня есть Jtable, на который я вызвал метод table1.setAutoCreateRowSorter(true);. Так что это хорошо работает. Но у меня также есть метод в моем классе JFrame, который запускается, когда я нажимаю кнопку. Он получает выбранные индексы строк, используя этот код. int selectedRows[] = this.table1.getSelectedRows();. И отображает окно редактирования для первой строки, соответствующей в выбранном интервале.

Проблема в том, что если я не нажимаю на заголовки столбцов (я имею в виду, что я их вообще не сортирую), мой метод работает отлично. Но когда я сортирую строку, индексы строк, похоже, не меняются вообще, что приводит к тому, что окно редактирования для старой строки, которая первоначально была в этой позиции, перед тем, как сделать какой-либо вид.

Я использую JDK 6, может ли кто-нибудь дать подсказку?

4b9b3361

Ответ 1

Основная модель не изменяет порядок. Изменяется только представление. Подробнее об этом можно узнать в Sun tutorial. Вам нужно будет использовать JTable.convertRowIndexToView() и JTable.convertRowIndexToModel().

Ответ 2

Вам нужно использовать convertRowIndexToView(int) и convertRowIndexToModel(int) для преобразования индексов модели (базовых данных) и индексов просмотра.