Индекс столбцов не изменяется после перетаскивания столбцов в Jtable - PullRequest
3 голосов
/ 03 ноября 2011

Я использую JTable для отображения информации. После рендеринга информации, если я перетаскиваю столбцы, чтобы изменить их порядок, информация отображается таким же образом в сеансе. Но когда я пытаюсь зафиксировать изменения, проверяя имена столбцов и повторяя имена столбцов, последовательность становится такой же, как и у более старых. Почему последняя версия недоступна из API?

1 Ответ

8 голосов
/ 03 ноября 2011

Как прокомментировал Hovercraft Full Of Eels, индексы столбцов в представлении изменяются независимо от индексов столбцов в модели.В JavaDoc JTable есть что сказать об этом:

По умолчанию столбцы могут быть переставлены в JTable, так что столбцы представления отображаются в другом порядке.к столбцам в модели.Это никак не влияет на реализацию модели: при переупорядочении столбцов JTable сохраняет новый порядок столбцов внутри и преобразует индексы столбцов перед запросом модели.

JTable предлагает методы convertColumnIndexToModel() и convertColumnIndexToView(), которые можно использовать для перевода номеров столбцов из одного в другой.Вы можете использовать их, чтобы выяснить, были ли (и как) столбцы переставлены.

Чтобы получать уведомления об изменениях столбцов по мере их появления, используйте TableColumnModelListener:

myTable.getColumnModel().addColumnModelListener( new TableColumnModelListener() {
    //etc.
} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...