Originariamente inviato da andbin
Non è un problema del JProgressBar ... è un problema legato al thread.
Appunto ... la questione è tutta qui.
Swing non è thread-safe. Tutta la gestione della interfaccia utente (disegno dei componenti, dispacciamento degli eventi, ecc...) è fatta in un unico thread chiamato EDT (event dispatch thread). E l'accesso ai componenti va fatto solo ed esclusivamente nel contesto di questo thread (salvo alcuni casi particolari, ben documentati, oltretutto).
Quando un metodo di un listener viene invocato, si è nel contesto del EDT. Ma non devi mai occupare più di tanto tempo il EDT, altrimenti la tua interfaccia si "congela". Se il controllo non ritorna al framework, nulla può essere disegnato, aggiornato a video.
Sono questioni molto essenziali, ne ho già parlato tante volte sul forum.