delegation event model

The delegation event model defines standard and consistent mechanisms to generate and process events. The main idea behind the delegation event model is that event handling is delegated to different objects and methods rather than having your GUI handle all the events.
* Each different event type uses a separate Event class.
* The events are processed by event listeners, which are separate objects that handle specific types of events. 
* Each different kind of listener also uses a separate class.
* The listener registers and specifies which events are of interest (for instance mouse events). Only those events that are being listened for will be processed.
* The source generates events and sends notifications of these events to one or more listeners (in fact, to all those listeners who have registered to receive them).
* When a listener receives notification of an event, the listener then processes (or "handles") the event and returns.