Я хочу запустить определенную функцию из doInBackground в EDT. В настоящее время я настроил его, используя публикацию и процесс, который работает нормально. Однако я хочу знать, есть ли способ запустить функцию в EDT из doInBackground без использования публикации и обработки. Кроме того, без использования invokeLater. Могу ли я сделать это как-то?
Запуск функции в EDT из doInBackground
Ответы (1)
Вы бы сделали это так же, как поставили бы любой код в очередь в EDT: через Runnable, добавленный в очередь событий:
protected void doInBackground() throws Exception {
// code to be called off of the EDT
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// code to be called on the EDT
}
});
return null;
}
person
Hovercraft Full Of Eels
schedule
18.10.2011
Извините, нужно было не указывать invokeLater или публикации и обработки.
- person Graham; 18.10.2011
@Graham: что ты имеешь в виду без вызоваLater, поскольку это не имеет смысла. Почему бы вам не использовать invokeLater, поскольку это есть решение, и другого нет?
- person Hovercraft Full Of Eels; 18.10.2011
именно это я и хотел узнать. Если есть другое решение, кроме invokeLater или опубликовать и обработать. Если нет, то ответ на мой вопрос.
- person Graham; 18.10.2011