Java基础——监听器的使用和原理(含有可执行demo)

本文详细解析了监听器的工作原理,包括事件、监听器及事件源三者的关系,并通过一个具体的Java示例代码展示了如何实现监听器,以及事件的触发与处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

监听器原理概述:监听器包含三个部分:事件(接口),监听器(接口),事件源(类,继承事件接口)。

事件:包含一组动作

事件源:发生时间的地方,事件有的动作它都有,因此需要继承事件,还有注册监听器来查看事件是否发生

监听器:查看事件是否发生,处理事件发生后做什么事情,因此需要包含一个处理器,处理器中传入事件

听起来有点拗口,具体关系这篇博客里面有:

https://blog.youkuaiyun.com/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();
	}

}

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值