动作侦听器是一个线程,如果是,这个线程对我自己定义的线程有什么影响?ActionListener是java中的一个线程吗?
特别是在Swing/AWT中当你定义你自己的线程,或者当你使用线程来制作一个动画时,是否影响到actionlistener?为什么?
动作侦听器是一个线程,如果是,这个线程对我自己定义的线程有什么影响?ActionListener是java中的一个线程吗?
特别是在Swing/AWT中当你定义你自己的线程,或者当你使用线程来制作一个动画时,是否影响到actionlistener?为什么?
不,动作侦听器是一个接口。您可以通过定义其actionPerformed()
方法(假设您参考this ActionListener)来实现该接口。该方法将在调用它的线程中运行。
因此,如果您从其中一个线程调用它,它将在该线程中运行。如果actionPerformed
与UI组件交互,那么这样做可能是一个糟糕的主意。
您可以阅读更多关于ActionListeners in Swing和Concurrency & Swing。
Swing Action
是最具可扩展性与来自Swing Action
AWT Listeners
输出比较应该是ActionListener
从Swing Action
输出应该总是做EDT
编辑
穆罕默德·哈桑Magdy尤其是在摇摆中写道/ AWT当你定义自己的线程,或当您使用一个线程来制作动画时,ActionListener的影响?为什么?
不要使用动画线程(Thread
或Runnable#Thread
)为Swing JComponents
,这可能是AWT
或者部分SWT
正确,
请忘记的例子从interner,大部分他们已经过时,因为Swing JComponents
使用Swing Timer exclusivelly
在什么背景?秋千/ AWT?或者只是一般的ActionListener接口? – wrschneider 2012-07-20 10:37:49
尤其是在Swing/AWT中定义自己的线程时,或者当您使用线程来制作动画时,是否影响到actionlistener?为什么? – 2012-07-20 10:56:05
@Mohamed Magdy Hassan没人知道你的目标是什么,请不要评论,但编辑你的问题, – mKorbel 2012-07-20 11:00:30