循环更新swingui并想动态看到效果,请使用invokeAndWait
SwingUtilities.invokeLater。调用后立即返回。其他线程和 invokeLater中的参数线程异步执行。互不阻塞。
这个方法只是将UI更新任务,加载到EventQueue,EDT线程并不能马上执行,而且又可能for循环调用invokeLater了一大堆ui更新,最后结果只是最后才更新,或者不间断的更新。
而,SwingUtilities.invokeAndWait
调用后,必须等到 线程对象 run方法在EDT中执行完了(UI更新后),才返回,然后继续执行后面的代码,这样的话,保证了动态显示的效果。