anch'io ho avuto di questi problemi, ho risolto però con i metodi obsoleti, deprecati, fuori moda ecc... di Thread: suspend() resume().
questa è la classe che incrementa la progress
poi ho creato l'altro thread che faceva quello che doveva fare, e la JDialog che contiene la progress, viene passata alla classe sopradetta creandone un instanza, e quando voglio che venga incrementata facciocodice:public class Status extends Thread { private JProgressBar j; int space = 0; Status(JProgressBar j) { this.j = j; start(); } public void run() { space += 20; j.setValue(space); this.suspend(); space += 20; j.setValue(space); this.suspend(); space += 20; j.setValue(space); this.suspend(); space += 20; j.setValue(space); this.suspend(); space += 20; j.setValue(space); } }
io mi sono arrangiato però in un modo schifosocodice:istanzaStatus.resume();dato che mi bastava che alla fine funzionasse, inoltre con questo codice devi sapere già in che punti incrementare la bar, di quanto, e quante volte.
Per sistemi più puliti rimando a qualcuno che abbia più esperienza di multithred e l'utilizzo di wait() e notify()
![]()

dato che mi bastava che alla fine funzionasse, inoltre con questo codice devi sapere già in che punti incrementare la bar, di quanto, e quante volte.
Rispondi quotando