Oracle
 sql >> Database >  >> RDS >> Oracle

JProgressBar non si aggiorna, non riesco a trovare un indizio

Se non puoi utilizzare SwingWorker quindi usa SwingUtilities.invokeLater , ad esempio:

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:durante questa operazione, tutto viene utilizzato in run deve essere definitivo o devono esserci altre misure per accedere alle variabili. Questo codice è simbolico al riguardo.

Devi eseguire operazioni sui componenti Swing al di fuori del thread di invio degli eventi, non c'è modo di aggirare questo problema.