Должен ли я использовать SwingUtilities.invokeLater () внутри SwingWorker.doInBackground ()?
Распространенным способом взаимодействия с EDT из Swing Worker является использование метода get (). Но у меня есть длинная задача и код вроде этого:
public Void doInBackground() {
for(Object o : objects) {
doSomething();
MyGlobalGUIConsole.addMessage("Done for " + o);
}
}
В большинстве обучающих материалов рекомендуется использовать возвращаемые значения, чтобы вернуть что-то из SwingWorker в EDT, но я могу просто:
public Void doInBackground() {
for(Object o : objects) {
doSomething();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MyGlobalGUIConsole.addMessage("Done for " + o);
}
});
}
}