Event driven programming
program has state
- combined state of objects
user interface (components) generate events
Listener objects are attached to components
listeners respond to events with state-dependent state transition (behaviour)
Adapters are implementations of Listeners
- used for quick subclassing
- esp. in anonymous inner classes