У меня есть собственный класс таблицы, который расширяет JTable. Я хочу, чтобы столбец был видимым/невидимым на основе флажка. У меня есть actionlistener, который меняет максимальную, минимальную и предпочтительную ширину столбца в действии.JTable: изменение столбца на основе внешнего ввода
Если флажок НЕ установлен, то я устанавливаю минимальную/максимальную/предпочтительную ширину равным 0. Когда он выбран, я устанавливаю минимальную/максимальную/предпочтительную ширину в нормальный размер.
Моя проблема, когда я нажимаю, чтобы установить флажок, таблица не изменяется. Я не вижу столбец. Однако, когда я изменяю размер приложения или любого столбца таблицы, таблица обновляется, и мой новый столбец теперь отображается правильно.
Я пробовал называть «table.repaint()», и это ничего не делало. Теперь мой идеальный подход состоит в том, чтобы просто выяснить, что вызвано во время изменения размера приложения/столбца, которое вызывает обновление, и просто вызвать его из моего слушателя.
опубликуйте [mcve], чтобы мы могли понять, что вы сделали – c0der
Вместо изменения * view * рассмотрите возможность внесения изменений в * Model * - вы могли бы сделать это, создав два TableModel, по одному для каждого типа, и измените JTable соответственно – copeg
'Когда я изменяю размер приложения или любого из столбцов таблицы, таблица обновляется, и мой новый столбец теперь отображается правильно.' Вы должны позволить LayoutManager знать, что произошли изменения. попробуйте вызвать 'revalidate', но учтите альтернативу в моем комментарии выше – copeg