JLabel ändern in actionperformed

d7439

Mitglied
Hallo Leute,

ich bin momentan am letzten Schliff für mein Verschlüsselungsprogramm. Das heisst, ich versuche gerade den Status anzuzeigen was das Programm gerade macht. Allerdings klappt das nicht ganz.

Das Problem ist das ich während einer actionPerformed ein JLabel nicht ändern kann (label.setText("Status XY")😉. Das Fenster friert quasi ein und sobald der Verschlüsselungsvorgang der Datei abgeschlossen ist läuft was Programm weiter. Ich würde gerne einen Status ausgeben das gerade die Datei verschlüsselt wird. Ich habe auch schon einen Thread erstellt und die Verschlüsselung in diesen Thread laufen lassen. Allerdings war das Ergebnis das gleiche.

Für einen Tipp mit welcher herangehensweise wär ich Euch sehr dankbar. 🙂

Viele Grüße


Wie realisiere ich das?
 
Hallo,
dafür ist eigentlich ein SwingWorker gedacht. Einfach im doInBackground deine Verschlüsselung durchführen, in "process" den Status aktualisieren (optional) und "done" wird dann aufgerufen, sobald dein doInBackground abgeschlossen (oder abgebrochen) ist.
In den Methoden "process" und "done" darfst du ohne Probleme Änderungen an der GUI durchführen (werden also im EDT ausgeführt). Möchtest du die "process" Methode zum aktualisieren während der Verschlüsselung nutzen, musst du dafür "publish" in der "doInBackground" verwenden.
Gruß
 
Zuletzt bearbeitet:

Zurück
Oben