Java基础——监听器的使用和原理(含有可执行demo)
程序员文章站
2022-05-01 12:27:03
...
监听器原理概述:监听器包含三个部分:事件(接口),监听器(接口),事件源(类,继承事件接口)。
事件:包含一组动作
事件源:发生时间的地方,事件有的动作它都有,因此需要继承事件,还有注册监听器来查看事件是否发生
监听器:查看事件是否发生,处理事件发生后做什么事情,因此需要包含一个处理器,处理器中传入事件
听起来有点拗口,具体关系这篇博客里面有:
https://blog.csdn.net/tfygg/article/details/51638933
以下是我写的demo,包含了详细的注释,不明白的话多敲几遍
public interface IEvent{
//事件:事物的一组活动就是事件
boolean clickButton();
//既然是事件,判断事件是否发生,发生了证明处理,需要一个监听器,监听器里面需要一个处理器
}
public interface IEventListener {
//监听器用于监听事件,处理事件,因此需要一个方法——处理器,处理器处理事件因此需要传入事件
void doEvent(IEvent event);
}
//事件源:发生事件的地方。因此需要集成事件完成事件的一系列活动
public class EventResource implements IEvent {
boolean button;
IEventListener eventlistener;
//事件源发生事件,通过事件的结果,去调用处理器根据结果进行处理,处理方式自己定义
public void clickButtonHappen1() {
// TODO Auto-generated method stub
button=false;
eventlistener.doEvent(this);
}
//事件源需要监听器处理因此需要注册监听器
public void setEventlistener(IEventListener eventlistener) {
this.eventlistener = eventlistener;
}
//返回事件的结果
@Override
public boolean clickButton() {
// TODO Auto-generated method stub
return button;
}
}
public class Test {
public static void main(String[] args) {
EventResource eventResource=new EventResource();
//实现监听器中的处理器方法,将监听器传到处理器当中,
IEventListener eventListener=new IEventListener() {
@Override
public void doEvent(IEvent event) {
// TODO Auto-generated method stub
if (event.clickButton()==true) {
System.out.println("点击了按钮");
}else {
System.out.println("无事件");
}
}
};
//注册监听器
eventResource.setEventlistener(eventListener);
//触发事件
eventResource.clickButtonHappen1();
}
}
注意:实现监听器的接口不是直接去实例化接口,而是创建监听器的子类继承接口,因此必须实现接口中的方法,接口不能实例化。
上一篇: 一篇文章带你学会docker
下一篇: java如何打可执行jar包?4种方式