简单阐述
所谓事件监听,就是一种连锁的反应,当事件A触发时候,事件B也会随之做出相应的反应。实现事件监听主要靠监听,事件源和他们之间的桥梁。
GUI按钮
在Java里面按钮要实现事件监听,创建一个按钮,希望它实现的功能就是按下按钮会有相应的事情发生或者做出相应的反应。监听对应这实际的类,事件源对应着按钮,桥梁则使用监听接口来实现的。事件源也可以是鼠标的操作等等其他的事件。
简单实现
package test;
import javax.swing.*;
import java.awt.event.*;
public class test implements ActionListener {//实现此接口,表示是个ActionListener
JButton button;
public void go(){
JFrame frame=new JFrame();
button=new JButton("点击");
button.addActionListener(this);//向按钮注册
frame.getContentPane().add(button);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(400,511);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event){//实现接口上的方法,按钮会以ActionEvent对象作为参数来调用此方法
button.setText("已点击");
}
public static void main(String[] args) {
test a = new test();
a.go();
}
}
执行的结果如下:
点击前:
点击后:
详解
监听和事件之间的沟通
这也就是事件监听的原理。
每个事件类型都对应的监听者接口,例如接受MouseEvent的话就要实现MouseListener接口等等。
监听获知事件:实现接口并向接口注册
事件源发出事件:在用户采取操时调用监听的事件的处理方法
事件对象携带事件信息:把事件信息带给监听者