SwingUtilities.invokeLater() - wann sollte es eingesetzt werden?: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
K
 
Zeile 1: Zeile 1:
 
[[Kategorie:Swing]]
 
[[Kategorie:Swing]]
*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.
+
*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.
 
*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 <code>SwingUtilities.invokeLater()</code> umhüllt 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 <code>SwingUtilities.invokeLater()</code> umhüllt werden.

Aktuelle Version vom 13. November 2021, 13:40 Uhr

  • 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.

Ähnliche Artikel