Java 监听器
来源:互联网 发布:可发说说的软件 编辑:程序博客网 时间:2024/05/17 22:55
定义事件对象,必须继承EventObject
- import java.util.EventObject;
- public class DoorEvent extends EventObject {
- private String doorState = "";//表示门的状态,有“开”和“关”两种
- public DoorEvent(Object source, String doorState) {
- super(source);
- this.doorState = doorState;
- }
- public void setDoorState(String doorState) {
- this.doorState = doorState;
- }
- public String getDoorState() {
- return this.doorState;
- }
- }
定义监听接口,负责监听DoorEvent事件
- import java.util.EventListener;
- public interface DoorListener extends EventListener {
- public void doorEvent(DoorEvent event);
- }
该类为 门1监听接口的实现,做具体的开门,关门动作
- public class DoorListener1 implements DoorListener {
- public void doorEvent(DoorEvent event) {
- if(event.getDoorState()!=null&&event.getDoorState().equals("open"))
- {
- System.out.println("门1打开");
- }
- else
- {
- System.out.println("门1关闭");
- }
- }
- }
- /**
- * 该类为 门2监听接口的实现,做具体的开门,关门,以及开灯,关灯动作
- */
- package test;
- public class DoorListener2 implements DoorListener {
- public void doorEvent(DoorEvent event) {
- if(event.getDoorState()!=null&&event.getDoorState().equals("open"))
- {
- System.out.println("门2打开,同时打开走廊的灯");
- }
- else
- {
- System.out.println("门2关闭,同时关闭走廊的灯");
- }
- }
- }
事件源对象,在这里你可以把它想象成一个控制开门关门的遥控器,
- import java.util.*;
- public class DoorManager {
- private Collection listeners;
- /**
- * 添加事件
- * @param listener DoorListener
- */
- public void addDoorListener(DoorListener listener) {
- if (listeners == null) {
- listeners = new HashSet();
- }
- listeners.add(listener);
- }
- /**
- * 移除事件
- * @param listener DoorListener
- */
- public void removeDoorListener(DoorListener listener) {
- if (listeners == null)
- return;
- listeners.remove(listener);
- }
- /**
- * 触发开门事件
- */
- protected void fireWorkspaceOpened() {
- if (listeners == null)
- return;
- DoorEvent event = new DoorEvent(this, "open");
- notifyListeners(event);
- }
- /**
- * 触发关门事件
- */
- protected void fireWorkspaceClosed() {
- if (listeners == null)
- return;
- DoorEvent event = new DoorEvent(this, "close");
- notifyListeners(event);
- }
- /**
- * 通知所有的DoorListener
- */
- private void notifyListeners(DoorEvent event) {
- Iterator iter = listeners.iterator();
- while (iter.hasNext()) {
- DoorListener listener = (DoorListener) iter.next();
- listener.doorEvent(event);
- }
- }
- }
- java 监听器
- java监听器
- java监听器
- Java 监听器
- JAVA监听器
- java监听器
- Java监听器
- java 监听器
- java监听器
- java 监听器
- java 监听器
- java监听器
- java 监听器
- Java监听器
- java监听器
- Java监听器
- 监听器---java
- Java 监听器
- 手工打造编译器之语义分析1
- usb在江湖系列之一家族系统(2) 2010/12/18
- jquery带进度上传插件Uploadify
- ASP.NET2.0中Gridview中数据操作技巧
- asp.net生成静态页面、伪静态、页面重定向
- Java 监听器
- 要考试了!
- VC6.0使用GDI+的方法及初始化
- ERP 概要分析(采购、销售与分销库存)
- usb在江湖系列之一家族系统(3) 2010/12/18
- 手工打造编译器之语义分析2
- awk {print $2}的讲解
- 笔试面试题记录
- “0”和“1”的艺术—程序的加密、解密和攻防对抗(Part 3)