Как изменить цвет элемента в моем графическом интерфейсе, если значение в основной программе изменяется - PullRequest
0 голосов
/ 03 марта 2011

Спасибо, что нашли время, чтобы попытаться помочь мне - это очень ценится.

Мой вопрос связан с изменением цвета фона элемента в графическом интерфейсе при изменении значения в основной программе Java. В основном моя программа анализирует внешние файлы и увеличивает переменную int. Когда переменная изменится, мне нужен цвет элемента (на данный момент это просто панели, с которыми я экспериментирую, но это может измениться).

Я знаю, как заставить элемент изменить цвет, т.е. item.setBackground (Color.RED); но я не знаю, как этого добиться, когда я этого хочу. В своей голове я знаю, что это как-то связано со слушателями, но все, чему меня когда-либо учили о слушателях, включает в себя что-то, что происходит в реальном графическом интерфейсе, а не в самой программе.

Еще раз спасибо за чтение, и я надеюсь, что вы можете помочь:)

Ответы [ 2 ]

1 голос
/ 03 марта 2011

На самом деле, так называемый Шаблон наблюдателя не зависит от пользовательского интерфейса. Если вы хотите, чтобы ваш графический компонент был уведомлен об изменениях в основном потоке, он подойдет. Взгляните на эту статью, если реализация неясна.

Обратите внимание, что вам нужно вызвать SwingUtilities.invokeLater () , чтобы обновить графический интерфейс пользователя из основного потока.

0 голосов
/ 03 марта 2011

Совсем нет. Для JVM нет особой разницы между классами GUI и вашими "основными" классами. Вы можете написать слушателей в любом месте. Взгляните на эту статью, она вам поможет: http://download.oracle.com/javase/tutorial/uiswing/events/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...