jtree заставляет пользователя видеть обновления через «мигание» (быстрое изменение цвета) - PullRequest
1 голос
/ 22 декабря 2010

У меня есть JTree, представляющее информацию (через DefaultMutableTreeModel).
Эта информация либо из действий пользователя, либо из асинхронного сообщения по сети.
У меня вопрос: можно ли заставить текст узла дерева начать мигать (я полагаю, это быстрое изменение цвета), чтобы пользователь был предупрежден о том, что что-то новое было добавлено? Если да, то как?

Спасибо!

1 Ответ

3 голосов
/ 22 декабря 2010

Есть 2 части проблемы.

  1. Обнаружение недавно измененных узлов. Вы можете добавить TreeModelListener к вашей модели и получить список измененных / вставленных узлов.

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

Добавьте javax.swing.Timer для изменения цвета каждые 0,5 секунды и вызовите перерисовку областей узлов (используйте getRowBounds или getPathBunds метод JTree).

...