动作监听器是线程吗,如果是,这个线程对我自己定义的线程有什么影响?
特别是在 Swing/AWT 中,当您定义自己的线程时,或者当您使用线程制作动画时,actionlistener 会影响吗?为什么?
动作监听器是线程吗,如果是,这个线程对我自己定义的线程有什么影响?
特别是在 Swing/AWT 中,当您定义自己的线程时,或者当您使用线程制作动画时,actionlistener 会影响吗?为什么?
不,动作监听器是一个接口。您可以通过定义其actionPerformed()
方法的作用来实现该接口(假设您引用此 ActionListener)。该方法将在调用它的线程中运行。
因此,如果您从其中一个线程调用它,它将在该线程中运行。如果actionPerformed
与 UI 组件交互,那么这样做可能是个坏主意。
您可以在 Swing和Concurrency & Swing中阅读有关ActionListener 的更多信息。
看看摇摆动作
Swing Action
与AWT 侦听器相比,可扩展性最强
输出Swing Action
应该是ActionListener
的输出Swing Action
应始终在完成EDT
编辑
Mohamed Magdy Hassan 特别在 Swing/AWT 中写道,当您定义自己的线程时,或者当您使用线程制作动画时,actionlistener 会影响它吗?为什么?
不要将线程(Thread
或Runnable#Thread
)用于动画Swing JComponents
,这可能是正确的,也可能AWT
部分是正确的SWT
,
内部例子请忘记,大部分已经过时,仅供Swing TimerSwing JComponents
使用