Java - 接口事件处理 - Delucidation

mar*_*zzz 1 java event-handling

抱歉,这是一个我从未意识到的概念,我从未使用过我的项目.我绝对需要学习和使用它.

所以我读了许多关于界面和事件处理的文章,但它并没有留在我的脑海里.

刚开始一个简单的例子:

public class Main implements ActionListener{
    JButton but=new JButton("BUTTON");
    public Main() {
        but.addActionListener(this);
    }


    public void actionPerformed(ActionEvent e) {
        // DO SOMETHINGS WHEN THE BUTTON IS CLICKED
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码绝对容易.我实现了ActionListener接口,所以我需要编写自己的方法代码(actionPerformed).

我不明白的是:

1 - 谁实施了这个addActionListener方法?它不是JButton类的方法.谁提供这种方法?

2 - addActionListeneractionPerformed方法之间的桥梁是什么?第一个应该提供Event e给第二个......并且两个都必须在某个地方实现......

对不起这个问题.我试着学习这个(通过阅读互联网上的许多文章),但我无法理解这是如何工作的!

干杯谢谢大家:)

ska*_*man 5

  1. addActionListenerAbstractButton超类实现JButton.

  2. JButton对象包含对您的ActionListener对象的引用(即您的Main类的实例).当用户触发UI事件时,JButton构造一个ActionEvent对象并将其传递给存储的ActionListener对象,即它将事件传递给您的Main类.

如果您想了解更多细节,请查看源代码AbstractButton.addActionListener以了解它的作用.