Oracle
 sql >> Datenbank >  >> RDS >> Oracle

JProgressBar wird nicht aktualisiert, kann keinen Hinweis finden

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.