帮我实现一个Java事件监听器的例子,要求:当猫叫这个事件发生的时候,有两只老鼠跑了
时间: 2024-05-10 18:14:06 浏览: 86
java一个监听器的例子
5星 · 资源好评率100%
好的,下面是一个简单的Java事件监听器的例子,实现了当猫叫时,两只老鼠会跑的功能:
首先,我们需要定义一个事件类,这里我们定义一个叫做"CatEvent"的事件类,它继承自Java内置的事件类"EventObject":
```
import java.util.EventObject;
public class CatEvent extends EventObject {
public CatEvent(Object source) {
super(source);
}
}
```
然后,我们定义一个监听器接口"CatListener",它有一个"hearCat"方法,用来处理事件:
```
import java.util.EventListener;
public interface CatListener extends EventListener {
void hearCat(CatEvent event);
}
```
接下来,我们定义一个事件源"Cat"类,它有一个添加监听器的方法"addCatListener",以及一个触发事件的方法"miao":
```
import java.util.ArrayList;
import java.util.List;
public class Cat {
private List<CatListener> listeners = new ArrayList<>();
public void addCatListener(CatListener listener) {
listeners.add(listener);
}
public void miao() {
System.out.println("猫叫了一声!");
CatEvent event = new CatEvent(this);
for (CatListener listener : listeners) {
listener.hearCat(event);
}
}
}
```
最后,我们定义一个监听器实现类"Mouse",它实现了"CatListener"接口,并实现了"hearCat"方法,在方法中输出"两只老鼠跑了!"的信息:
```
public class Mouse implements CatListener {
@Override
public void hearCat(CatEvent event) {
System.out.println("两只老鼠跑了!");
}
}
```
现在,我们可以在主函数中使用上述类:
```
public class Main {
public static void main(String[] args) {
Cat cat = new Cat();
Mouse mouse1 = new Mouse();
Mouse mouse2 = new Mouse();
cat.addCatListener(mouse1);
cat.addCatListener(mouse2);
cat.miao();
}
}
```
输出结果为:
```
猫叫了一声!
两只老鼠跑了!
两只老鼠跑了!
```
说明两只老鼠都成功监听到了事件,并做出了相应的处理。
阅读全文