Мы используем JTable, который отображает данные вместе со статусом (Новый, Обработан, Закрыт).Каждая строка состояния имеет свой цвет, который достигается перегрузкой prepareRenderer () JTable.
Теперь нам нужно отсортировать эту таблицу, и мы используем table.setAutoCreateRowSorter (true);чтобы достичь этого.Строки сортируются правильно, но цвет строк остается прежним.После этой операции нам нужно повторно применить цвет ко всем строкам на основе столбца состояния.
Мне было интересно, что может быть лучшим способом для достижения этой цели.Есть несколько способов, о которых я могу подумать:
- Перекрасить / заново проверить таблицу.Но, думаю, простое выполнение этого не сработает.
- Захватите событие mouseClicked и определите, был ли нажат заголовок столбца, затем вызовите prepareRenderer () вручную, а затем вызовите repaint / revalidate
- Затем я прочитал один извопросы здесь, где в одном из ответов было упомянуто не вызывать repaint / revalidate напрямую, а изменить базовую модель данных, и она автоматически вызовет вышеуказанные методы.
Я не знаю, как поступитьоб этом.Может ли кто-нибудь дать представление о том, как правильно этого добиться?