Swing und der Event-Dispatch-Thread

Öhm also ich bin jetzt nicht ganz sicher ob du das mit den Threads verstanden hast, jedenfalls verstehe ich dein Beispiel so nicht. Normalerweise sollte es kein Problem sein, innerhalb des EDTs invokeAndWait aufzurufen, über die internen mechanismen wie die ganzen Runnables auf dem EDT abgearbeitet werden bin ich jetzt aber auch nicht im Bilde. Merk dir einfach, dass jedes set, add oder remove auf einer Swing Komponente am EDT laufen sollten, sonst gibts bugs. Wenn du Wert auf saubere Programmierung legst machst du auch jede andere Methode (z.B get) auf dem EDT). Ist ja normalerweise nicht die Welt.

Wichtig: Sämtlicher Code der von einem Listener ausgeführt wird läuft bereits auf dem EDT. Da nochmal zu invoken ist meist nicht notwendig.