Java: индекс выбранных строк не изменяется при сортировке - PullRequest
13 голосов
/ 17 апреля 2010

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

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

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

Ответы [ 2 ]

17 голосов
/ 17 апреля 2010

Базовая модель не меняет порядок. Меняется только вид. Вы можете прочитать больше об этом в Учебник Sun . Вам нужно будет использовать JTable.convertRowIndexToView () и JTable.convertRowIndexToModel ().

5 голосов
/ 17 апреля 2010

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

...