Labeltext ändert sich nicht in actionPerformed

  • Themenstarter Themenstarter Vayu
  • Beginndatum Beginndatum
V

Vayu

Gast
Servus,

ich versuche in der actionPerformed-Methode meines ActionListeners den text eines Labels umzusetzen.
Das Label soll dem Benutzer anzeigen, da tut sich noch was (lange Ladezeit aus Tabelle). Zusätzlich setze ich auch den Cursor noch auf die Eieruhr.
Leider passieren diese Änderungen aber erst nachdem der ganze Ladedurchgang vorüber ist. Kann man solche GUI-Änderungen irgendwie bevorzugt ablaufen lassen?

Gruss und Dank,
Vayu
 
hmm, das ist doch eher ein Standard-Thema für Neue User,
all die Jahre nichts zu Nebenläufigkeit in Swing, Blockierung des AWT-Thread usw. mitbekommen?

der umfangreiche FAQ-Eintrag dazu, vor allem zu Progressbar ist
http://www.java-forum.org/bilder-gu...-progressbars-algorithmen-multithreading.html
die Kurzform:
lange Aktionen gehören in einen eigenen Thread, Swing-Aufrufe entweder mit invokeLater,
oder label.setText() ruhig auch direkt, ist nicht kritisch
 
Stichwort Thread, SwingWorker... Die Ladeaktion muss in einem separaten Thread laufen, sonst wird der EDT blockiert und die GUI friert ein.
 
Also hat funktioniert. Ich hab scho länger nix mehr mit Swing gemacht gehabt und hab grad irgendwie falschrum gedacht. Ich hatte die ganze Zeit versucht das setzen des Labeltexts auszulagern :>
 

Zurück
Oben