SwingUtilities.invokeLater()

Status
Nicht offen für weitere Antworten.
B

BananenHarry

Gast
Hallo,

Ich hab neulich mit einem Freund diskutiert, und er hat noch nie SwingUtilities.invokeLater() benötigt.

Es geht ja dabei um die Threadsicherheit von Swing.

Muß ich das jetzt verwenden, oder kann ich das auch weglassen.

Wann genau gibt es Probleme ?

Nur wenn man mit "graphics" auf Panels zeichnet, wegen repaint() ?
 

Wildcard

Top Contributor
Wann immer ein anderer Thread als der Event Dispatch Thread die Oberfläche über eine nicht threadsichere Methode (fast alle) manipuliert (direkt, oder indirekt) muss mit invokeLater oder invokeAndWait synchronisiert werden.
 
G

Gast

Gast
Danke, das ist ein sehr gute knappe Zusammenfassung.
Hab ich mir ausgedruckt !
 
G

Guest

Gast
Wildcard hat gesagt.:
Wann immer ein anderer Thread als der Event Dispatch Thread die Oberfläche über eine nicht threadsichere Methode (fast alle) manipuliert (direkt, oder indirekt) muss mit invokeLater oder invokeAndWait synchronisiert werden.

und wann welches?
 

byte

Top Contributor
Lässt sich nicht pauschalisieren, aber in den meisten Fällen wohl invokeLater(), da sonst die Nebenläufigkeit des zweitens Threads obsolet wäre. Bei invokeAndWait() schläft Dein Thread, bis der EDT die Anfrage bearbeitet hat. Bei invokeLater() arbeitet er sofort weiter.
 

André Uhres

Top Contributor
In einem Applet muß die GUI-Erzeugung mit invokeAndWait in der init Methode gestartet werden; andernfalls kann init zu Ende sein, bevor die GUI erstellt ist, was Probleme für den Web Browser verursachen kann, der das Applet startet.
 

GUI-Programmer

Top Contributor
Pauschal gefragt: Was ist nun besser? invokeLater oder invokeAndWait ? oder sollte man bei einem JFrame invokeLater und bei einem Applet invokeAndWait verwenden. Bitte antworten.
 

Volvagia

Top Contributor
Nicht umbedingt. AndWait pausiert eben den aufrufenden Thread, was in seltenen Fällen nützlich oder sogar benötigt werden kann, bremst aber eben auch den aktuellen Thread sehr stark aus, sollte deshalb nur mit großer Vorsicht benutzt werden. Du musst bedenken, dass bei fast jeder Aktion, auch wenn es nur ein MouseEntered ist ein Event gefeuert wird. Bei größeren Programmen kann der EDT deshalb fast ununterbrochen beschäftigt sein.

Mehrere Repaints können vom RepaintManager zu einen zusammengefasst werden, deshalb sollten die nur so drauf los gefeuert werden damit immer so schnell wie möglich alles da ist. (Einfach ausgedrückt. ^^)
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
OK. Applet invokeAndWait, Frame invokeLater. Verstanden.

Also nicht. Ich habe ihn gelesen und konnte da wesentlich mehr Informationen bekommen. Sorry, aber mir kommt es so vor, als ob du nur den Post von André (welcher vor deinem letzten war) gelesen. Deine Antwort steht schon in dem Thread, man muss nur richtig lesen :rtfm:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ollek Swing SwingUtilities invokeLater und invokeAndWait AWT, Swing, JavaFX & SWT 4
W Swing SwingUtilities.invokeLater wie konsequent anwenden? AWT, Swing, JavaFX & SWT 3
Dit_ SwingUtilities.invokeLater und Modaler JDialog AWT, Swing, JavaFX & SWT 11
Dit_ Frage zum Thema SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 5
G Frage zu SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 16
G Frage zu SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 9
ms_cikar Update swingUtilities Repaint in der Schleife AWT, Swing, JavaFX & SWT 3
G LookAndFeel SwingUtilities.updateComponentTreeUI(frame) <- wie heißt mein Frame? AWT, Swing, JavaFX & SWT 5
J Alternative für SwingUtilities Schachteln AWT, Swing, JavaFX & SWT 2
G Vector ArrayIndexOutOfBoundsException SwingUtilities.invokeL AWT, Swing, JavaFX & SWT 5
M Swing GUI wird nach invokeLater() langsam AWT, Swing, JavaFX & SWT 19
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
X Swing GUI-Änderungen mit invokeLater AWT, Swing, JavaFX & SWT 4
B Swing invokeLater nötig beim GUI erstellen? AWT, Swing, JavaFX & SWT 10
H invokeLater Problem AWT, Swing, JavaFX & SWT 8
I Swing Wann invokeLater() verwenden? AWT, Swing, JavaFX & SWT 7
E einfache Frage zu invokeLater() AWT, Swing, JavaFX & SWT 4
G Schachtelung bei invokeLater AWT, Swing, JavaFX & SWT 4
F invokeLater() vs synchronized(Object) AWT, Swing, JavaFX & SWT 5
T invokeLater - Wann? AWT, Swing, JavaFX & SWT 29
L invokeLater in der main-Methode AWT, Swing, JavaFX & SWT 6
D GUI in JFrame mit invokeLater verändern AWT, Swing, JavaFX & SWT 5
M GUI in Verbindung mit invokeLater() bzw. invokeAndWait() AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben