Generics make your code more flexible and easier to read, and they help you avoid ClassCastExceptions at runtime. Get started with this introduction to using generics with the Java Collections ...
Event-driven design has been around for quite some time. Within Java, both AWT (Abstract Window Toolkit) and Swing are based on an event model. Java provides the classes EventQueue, AWTEvent, ...