All of the action, as far as events and listeners are concerned, starts in the java.util package. java.util comes with a class and an interface—EventObject and EventListener, respectively, which form the foundation of the delegation event model. EventObject is a simple class that does nothing more than keep track of its event source, and EventListener is a tagging interface, which all listeners extend. EventListener and EventObject anchor hierarchies of listeners and events, respectively. Figure 9-3 shows the event listeners, all of which extend the java.util.EventListener interface.
 A tagging interface does not define any methods.