Swing is the replacement for AWT. It is a very clean design,
based on well known design patterns, such as Observer.
At root it is a set of components.
We focus on showing you the underlying mechanisms — this deeper insight makes
it far simpler to work with the whole collection of Swing components.
Duration: 2 days
- learn the fundamental mechanics of Swing components
- practice working with the essential elements such as layout, widgets, and events
- understand the patterns that Swing is based on
- review the more complex aspects of designing a user interface,
e.g. optimization with threads, and meta-programming
- try out some of the harder Swing components, such as JTree
The course is suitable for Java developers.
Ideally this training should be preceded by the course:
design and develop applications with Java.
- using JFrame and widgets
Simple user input
- button handling
- menu handling
- mouse handling and popup menus
- widgets with simple state
- radio buttons and check boxes
- widgets with complex models
- decorator patterns to filter tables
- GridBag layout
- dialogs and JOptionPane
- mnemonics and accelerators
Event handling in Swing
- event-handling basics
- Java event listeners
- listeners supported by Swing components
- common events
- listener API
- event-handling for each Swing component
Threads in Swing
- Java threads and the differences in Swing
- thread theory: philosophers at lunch
- Runnable interface and the Thread class
- critical sections, locks, synchronization
- GUI optimization
- review of time-consuming tasks
- optimize event-dispatching
- repeat operations
- waiting for messages
Patterns in Swing
- MVC(Model View Controller)
- Observer (Publish/Subscribe)
- Interface Decoupling
A review of dynamic programming with Swing components.
Please note, when taught at your site, this course is customizable. Modules can be adapted, removed, added from other courses, or even created.
The course is extremely practical, developed and taught by consultants
with at least ten years' experience in software design.