Как обновить GUI SWT от другого потока в Java

Обратите внимание, что Ruby имеет английские имена в течение дней недели, уже встроенной в ее класс даты. Необходимо попытаться усилить это, если Вы можете. Вот rdoc.

Тогда, как Может, предложил, просто делают следующее:

select(:event, :day, Date::DAYNAMES)

Имеют в виду, что это решение не особенно i18n дружественное. Если бы i18n является проблемой, я также проверил бы локализованный плагин дат и изменения, которые были внесены в направляющих 2.2 для поддержки i18n.

13
задан Apache 16 January 2014 в 09:56
поделиться

4 ответа

Используйте Display.asyncExec или Display.syncExec , в зависимости от ваших потребностей.

] Например, другой поток может вызвать этот метод для безопасного обновления метки:

  private static void doUpdate(final Display display, final Label target,
      final String value) {
    display.asyncExec(new Runnable() {
      @Override
      public void run() {
        if (!target.isDisposed()) {
          target.setText(value);
          target.getParent().layout();
        }
      }
    });
  }
17
ответ дан 1 December 2019 в 22:39
поделиться

Фактически вы можете просто послать сообщение потоку графического интерфейса пользователя, что некоторые модификации были изменены. Это будет чище, если вы посмотрите на это с точки зрения MVC.

0
ответ дан 1 December 2019 в 22:39
поделиться

При создании отдельного потока от основного потока передайте объект Gui новому потоку, и вы сможете получить доступ ко всем свойствам этого объекта GUI.

-1
ответ дан 1 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: