Wenn Sie SwingWorker
nicht verwenden können Verwenden Sie dann SwingUtilities.invokeLater
, z. B.:
if (progress != Path.operationProgress) {
final int progressCopy = progress; // Probably not final so copy is needed
SwingUtilities.invokeLater(new Runnable() {
@Override
void run() {
operationsProgressBar.setValue(progressCopy);
}
});
}
Hinweis:Dabei wird alles, was in run
verwendet wird muss final sein oder es müssen andere Maßnahmen zum Zugriff auf die Variablen vorhanden sein. Dieser Code ist in dieser Hinsicht symbolisch.
Sie müssen Operationen an Swing-Komponenten außerhalb des Event-Dispatching-Threads durchführen, daran führt kein Weg vorbei.