Как прокомментировал Hovercraft Full Of Eels, индексы столбцов в представлении изменяются независимо от индексов столбцов в модели.В JavaDoc JTable
есть что сказать об этом:
По умолчанию столбцы могут быть переставлены в JTable
, так что столбцы представления отображаются в другом порядке.к столбцам в модели.Это никак не влияет на реализацию модели: при переупорядочении столбцов JTable
сохраняет новый порядок столбцов внутри и преобразует индексы столбцов перед запросом модели.
JTable
предлагает методы convertColumnIndexToModel()
и convertColumnIndexToView()
, которые можно использовать для перевода номеров столбцов из одного в другой.Вы можете использовать их, чтобы выяснить, были ли (и как) столбцы переставлены.
Чтобы получать уведомления об изменениях столбцов по мере их появления, используйте TableColumnModelListener
:
myTable.getColumnModel().addColumnModelListener( new TableColumnModelListener() {
//etc.
} );