Ho uno swing worker che calcola in background, mentre aggiorno un progressBar in un JFrame.Come aspettare fino al completamento di SwingWorker?
Come posso fare in modo che il thread principale attenda che doInBackground() termini?
So che posso mettere le cose nel metodo done(), ma mi stavo chiedendo se ci fosse un modo per far effettivamente aspettare il programma (quel thread, per essere corretto).
Qualcosa di simile a quello che farebbe un JDialog modale.
Quindi ...
SwingWorker a = new SwingWorker();
a.execute
doOtherStuff();
doOtherStuff è stato eseguito solo dopo doInBackground è completa, ma senza mettere il suddetto metodo nel metodo di fatto() della SwingWorker.
Uno SwingWorker rappresenta un'operazione "asincrona". Con questo paradigma, la "prossima" cosa da fare dovrebbe essere gestita in un callback, altrimenti, utilizzarlo come una sorgente di eventi asincrona acquista poco. JDialogs sono degli hacks terribili ... non qualcosa che consiglierei di provare ad emulare. –