Il worker.execute() è praticamente immediato, ritorna subito. Quindi appena dopo isDone() ragionevolmente non può essere true!
Mi spiace ma stai facendo troppi "giri" a vuoto. Prova a leggere bene la documentazione javadoc di SwingWorker e il tutorial https://docs.oracle.com/javase/tutor...cy/worker.html .
Poi nel weekend, appena ho tempo, vedo di scrivere un bel esempio completo.![]()