欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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();
	}

}

注意:实现监听器的接口不是直接去实例化接口,而是创建监听器的子类继承接口,因此必须实现接口中的方法,接口不能实例化。

 

相关标签: Java监听器