SwingUtilities.invokeLater() - wann sollte es eingesetzt werden?
Aus Byte-Welt Wiki
Version vom 13. November 2021, 13:40 Uhr von L-ectron-X (Diskussion | Beiträge)
- Ein Thread, der Ergebnisse für die Darstellung auf der GUI berechnet, muss diese mit dem Event Dispatching Thread (EDT) synchronisieren. Das gilt auch für Zwischenergebnisse, sollten die für den Benutzer interessant sein.
- Alle Zeichenvorgänge, die im EDT ausgeführt werden, brauchen nicht synchronisiert zu werden.
- Werden für die Ausgabe auf einer GUI mehrere Zeichenschritte verwendet, kann es u.U. zu hässlichen Flacker-Effekten kommen. Um diese loszuwerden kann man die Teilschritte zu einem Schritt verbinden, in dem man dafür sorgt, dass die Teilschritte mit
SwingUtilities.invokeLater()
umhüllt werden.