动作侦听器是一个线程,如果是,那么这个线程对我自己定义的线程的影响是什么?
特别是在Swing / AWT中定义自己的线程时,或者当你使用线程制作动画时,actionlistener会影响到吗?为什么?
答案 0 :(得分:8)
不,动作监听器是一个接口。您可以通过定义其actionPerformed()
方法的功能来实现该接口(假设您引用this ActionListener)。该方法将在调用它的线程中运行。
因此,如果您从其中一个线程调用它,它将在该线程中运行。如果actionPerformed
与UI组件交互,那么这样做可能是个坏主意。
答案 1 :(得分:4)
Swing Action
最具扩展性
Swing Action
的输出应为ActionListener
Swing Action
的输出应该始终完成EDT
修改
当你定义自己的线程时,或者当你使用线程制作动画时,Mohamed Magdy Hassan特别在Swing / AWT中写道,actionlistener会影响到吗?为什么?
不要将线索(Thread
或Runnable#Thread
)用于Swing JComponents
的动画,这对于AWT
或部分用于{{1}可能是正确的},
请忘记来自interner的示例,其中大多数都已过时,SWT
使用Swing Timer独占