关键
invokeAndWait()是让另一个线程等待事件分发线程(EDT)中的某些操作。由于此代码已在EDT上执行,因此直接调用它而不是创建Runnable就足够了。
因此,此代码不应包含任何内容:
gamePanel.update(event, handState, player); validate();

关键
invokeAndWait()是让另一个线程等待事件分发线程(EDT)中的某些操作。由于此代码已在EDT上执行,因此直接调用它而不是创建Runnable就足够了。
因此,此代码不应包含任何内容:
gamePanel.update(event, handState, player); validate();