SwingUtilities.invokeLater ...有一个invokeNow?

时间:2014-04-22 02:34:18

标签: java swing invokelater

I had a problem earlier我试图在我的画布上添加对象但是SwingUtilities.invokeLater还没有真正完成它的工作。我真的需要能够可靠地向这个JPanel添加东西,但我仍然遇到同样的错误。是否有更好的替代以下代码?

private void startNewGame() {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            gameFrame = new InvadersGameFrame();
        }
    });
}

1 个答案:

答案 0 :(得分:3)

请参阅SwingUtilities.invokeAndWait(Runnable)

  

导致doRun.run()在AWT事件派发线程上执行同步。此调用将阻塞,直到所有待处理的AWT事件都已处理完毕,并且(然后)doRun.run()返回。当应用程序线程需要更新GUI时,应该使用此方法。