ActionListener如何工作?

时间:2011-02-03 11:33:18

标签: java swing actionlistener

我知道如何使用动作侦听器并实现它们,但我想知道是否有人可以告诉我他们如何听取事件? 有某种投票机制吗?

3 个答案:

答案 0 :(得分:13)

动作侦听器使用Observer pattern注册事件,并通过主事件循环通知它们注册的任何事件。所以不,它不是一个轮询(拉)机制,而是相反的 - 一个(推)回调。这是“不要打电话给我们,我们会打电话给你”编程的一个例子。因为代码中的所有内容都运行在一个线程(事件循环)中,所以您不必担心在不同事件之间进行同步 - 因此您的代码是线程安全的。

答案 1 :(得分:1)

有一个事件循环被实现到AWT的核心。它接收所有事件并将它们发送给适当的听众。

答案 2 :(得分:1)

本教程解释了它们如何运作良好:http://download.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

我认为JComponent的UI实现会在用户与之交互时触发(调用)所有已注册的事件(我认为)。

例如,当用户点击JButton时,按钮(或其ui或其他内部处理程序)将查找所有已注册的ActionListeners并调用其actionPerformed(...)方法。< / p>