Wann kann ein Swing Worker als beendet angesehen werden?

Vereth

Erfahrenes Mitglied
Ich habe eine SwingWorker-Klasse, die ich mehrmals hintereinander starten möchte, natürlich mit unterschiedlichen Parametern. Den Fortschritt des jeweils aktiven Workers zeige ich in einer JProgressBar an, indem ich die progress-Property mitverfolge, was auch gut funktioniert. Mein Problem ist aber, dass ich auch dann noch PropertyChangeEvents für progress empfange, wenn ich schon ein PropertyChangeEvent für state mit Wert DONE empfangen habe; insbesondere beim Abbrechen eines Workers ist das problematisch, weil der state schon allein dadurch auf DONE gesetzt wird, dass cancel(true) aufgerufen wird. Ich habe schon versucht, die done-Methode zu überschreiben und dort ein firePropertyChange für eine zusätzliche Property aufzurufen, aber auch das hat nicht funktioniert; die done-Methode wird aufgerufen, wenn der state, z.B. durch cancel(true), auf DONE gesetzt wird, egal, ob der Worker weiterarbeitet oder nicht.
 
Zurück