Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

JProgressBar não atualiza, não consigo encontrar uma pista


Se você não pode usar SwingWorker então use SwingUtilities.invokeLater , por exemplo.:
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);
        }
    });
}

Nota:Ao fazer isso, tudo usado em run tem que ser final ou tem que haver outras medidas para acessar as variáveis. Este código é simbólico a esse respeito.

Você precisa fazer operações em componentes Swing fora do encadeamento de despacho de eventos, não há como contornar isso.