0
我需要每X毫秒更新并重新绘制我的应用程序,这意味着我需要创建一个线程调用frame.update()
这是一种自定义方法,而frame.repaint()
的JFrame
,但是我担心如果这会导致任何死锁或其他多线程因为据我所知Swing
有自己的线程来更新组件等等,所以在这种情况下,我有点无知,在做一些可能会给我带来未来问题的事情之前,我正在尝试研究一下。多线程与Swing:线程更新和重绘?
是什么让我认为,这将导致问题是因为我使用SwingUtilities.invokeLater
与new runnable
还是有一种原始的方式与SwingUtilities
做到这一点?
是否可以创建一个线程,每隔X毫秒重新绘制一帧?
不要运行一个线程,使用计时器:http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html('invokeLater'从一个线程虽然工作正常) – zapl
@zapl但不是一个计时器与使用线程相同吗?它确实创建了一个新线程 –
不是真的,“请注意,Swing计时器的任务是在事件分派线程中执行的。” - 它安排你的代码在现有的UI线程中运行 – zapl