Frage

Es gibt viele Methoden, die Sie sollten nicht anrufen, wenn Sie nicht auf dem AWT Event Thread sind. Diese sind im allgemeinen Methoden, die die UI in irgendeiner Weise zu manipulieren.

Ist dies der Fall mit der Komponente der getGraphicsConfiguration (...)? Es ist nur ein Getter, aber es scheint eine Sackgasse zu führen, wenn die Ereignis-Thread auf dem Thread wartet diese Methode aufrufen.

Während der Sackgasse zu lösen ziemlich trivial ist (Vermeidung von Warte verwenden oder auf dem Event Thread synchronisieren), sollte ich nur getGraphicsConfiguration in einem zu SwingUtilities.invokeLater (...) oder invokeAndWait (...) übergeben Runnable Aufruf werden?

War es hilfreich?

Lösung

AWT Thread-Sicherheit ist (notwendigerweise) gebrochen. Gehen Sie einfach nicht irgendwo in der Nähe. Bleiben Sie auf dem geraden AWT EDT

Beachten Sie auch, dass, nur weil ein Verfahren in java.awt.Component ist, bedeutet es nicht, dass das Objekt (oder ein Objekt, indem sie es bezeichnet) nicht in Swing ist und daher eigentlich nicht einmal überhaupt zu seinen Thread-sicher vorgibt. (Genug Nichtse?)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top