Получить системный цвет по умолчанию из нити Ui - PullRequest
0 голосов
/ 02 сентября 2010

В одном из моих классов у меня есть следующий код:

private static final Color GREEN = new Color(null, 0, 255, 0);

Я знаю, что класс Display предоставляет следующий метод:

Display.getSystemColor(int id)

для возврата системы по умолчаниюцвета вместо создания новых цветов.Как лучше всего получить экземпляр Display в контексте статического кода, вызываемого не в потоке пользовательского интерфейса?

Ответы [ 3 ]

1 голос
/ 02 сентября 2010

Вам нужно будет использовать Display.getDefault().syncExec(...) вызов.Внутри вашего runnable вы можете выполнить что-то вроде Display.getDefault().getSystemColor(...).Для того, чтобы вернуть значение, вам нужно будет сохранить его в поле в вашем исполняемом файле, а затем получить доступ к этому полю из вызывающего метода.

Поскольку выполнение выполняется с помощью syncExec, не вводитетупик (пользовательский интерфейс вызывает ваш сервис, который пытался вызвать пользовательский интерфейс, может вызвать его).

1 голос
/ 02 сентября 2010

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

0 голосов
/ 06 сентября 2010
PlatformUi.getWorkbench().getDisplay()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...