1. 程式人生 > >Java事件處理機制(自定義事件)

Java事件處理機制(自定義事件)

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