如果您不在AWT事件线程上,有许多方法不应该调用。这些通常是以某种方式操纵UI的方法。
这是Component的getGraphicsConfiguration(...)的情况吗?它只是一个getter,但如果事件线程在调用此方法的线程上等待,它似乎会导致死锁。
虽然解决死锁是相当简单的(避免在事件线程上使用等待或同步),我应该只在传递给SwingUtilities.invokeLater(...)或invokeAndWait(...)的Runnable中调用getGraphicsConfiguration吗? / p>
答案 0 :(得分:1)
AWT线程安全性(必然)已被破坏。只是不要靠近它。保持直线AWT EDT
另请注意,仅仅因为某个方法位于java.awt.Component
中,并不意味着该对象(或其引用的对象)不在Swing中,因此根本不假装完全是线程安全的。 (够了吗?)