Oracle
 sql >> Base de données >  >> RDS >> Oracle

JProgressBar ne se met pas à jour, impossible de trouver un indice

Si vous ne pouvez pas utiliser SwingWorker puis utilisez SwingUtilities.invokeLater , par exemple :

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);
        }
    });
}

Remarque :lors de cette opération, tout ce qui est utilisé dans run doit être définitif ou il doit y avoir d'autres mesures pour accéder aux variables. Ce code est symbolique à cet égard.

Vous devez effectuer des opérations sur les composants Swing en dehors du thread de distribution d'événements, il n'y a pas moyen de contourner cela.