172. Java Foundation Classes
Rev. 5.0
This course is now available directly from our partner, Capstone Courseware.
This 5-day course introduces the Java programmer to the Java Foundation
Classes – a.k.a. Swing – the Java environment’s comprehensive framework for GUI
development. The student will study the fundamentals of the JFC architecture
and quickly move to building simple JFC frame-based applications. By the end of
the course the student will be comfortable building simple or complex
interfaces with the most common Swing controls and classes – including buttons,
lists, combo boxes, checkboxes and radio buttons, text controls, trees, and
tables – controlling multiple windows and dialogs, using panes to manage
related interfaces, implementing popup menus, and using data transfer packages
for clipboard and drag-and-drop implementations.
The first module of the course provides an introduction to the JFC
architecture and standard practices. AWT concepts such as the event model and
basic layout management are reviewed as necessary. The standard controls are
covered, including labels, text components, buttons, listboxes, and comboboxes.
Architectural patterns are emphasized, especially JFC’s strict use of the
Model-View-Controller paradigm. Understanding the thorough use of this pattern
in JFC is critical to using the framework effectively. Event handling is
treated, both handling AWT-style events, such as action events from button clicks,
and handling events fired by the model that lies under a particular control.
In the second module, more sophisticated and powerful controls are
studied: the tree and table controls. Each is presented in a separate chapter,
allowing students to dig into the underlying architecture and to develop a firm
grasp of the many powerful features lying behind the direct use of the control
classes themselves. Especially, customization of the controls using renderers
and editors is considered. The final chapter of this module discusses the
effective use of the separate model class and object, which pattern is built
into all Swing controls, to implement trees and tables that present very large
data sets. This allows the student to confront problems common to enterprise-class
GUI building, and to find sound solutions using techniques such as lazy
evaluation and LRU eviction.
In the third and final module, advanced GUI-management features are
studied. Students learn to implement and/or customize scrolling, and to use
splitter panes to combine related user interfaces. Popup elements such as
dialog boxes, message boxes, and menus are also considered. The module
concludes with a treatment of JFC’s data transfer model, which empowers
clipboard copy, cut, and paste features as well as drag-and-drop. A simple
application is developed over the course of this module that implements all the
above features.
LEARNING OBJECTIVES
·
Understand the basics of the JFC architecture.
·
Build simple GUI applications using JFC.
·
Build more complex GUIs using various JFC
controls.
·
Use the many hooks into the JFC architecture to
easily customize rendering and editing within JFC controls.
·
Understand the significance of the MVC
decomposition in using JFC controls.
·
Build GUI classes that make effective use of
events as fired from model, view and controller elements of the GUI itself.
·
Implement JFC GUIs based on existing data
structures, and use model implementations to adapt the JFC controls seamlessly
to this data.
·
Handle very large data sets, such as remote
databases, without degradation of performance or user responsiveness.
·
Implement scrolling, and customize scrolling for
a particular scrollable element.
·
Manage complex user interfaces by combining GUI
areas with splitter panes and tab panes.
·
Expand an application interface with popup
dialogs, message boxes, and popup menus.
·
Use standard dialogs such as file choosers and
color choosers.
·
Implement clipboard cut, copy and paste using
the JFC data transfer model.
·
Implement drag sources and drop targets for
complete drag-and-drop capabilities.
Course Duration: 5
days.
Prerequisites: Solid
experience with Java programming is required. Course 103, “Java Programming,”
is excellent preparation.
Module 1: Introduction to JFC
1.
Introduction to JFC
Abstract Windowing Toolkit Basics
Simple Layout Management
Simple Event Handling
Lightweight Controls
JFC Feature Set
JFC Architecture and Relationship to AWT
2.
JFC Application Design
Role of a JFrame
Building a Frame-Based JFC Application
Panes
Using Dialogs
3.
JFC Components
JFC Component Class Hierarchy
JComponent Features
Simple Control Types
Text Components
Menus
Managing Look and Feel
4.
Architectural Patterns
Observer Pattern
Model-View-Controller Decomposition
Strategy Pattern
JList
Factory Pattern
JComboBox
Module 2: JFC Trees and Tables
1.
Hierarchical Data and JTree
Presenting Hierarchies
JTree and Supporting Classes
Using the Default Tree Model
Customizing Look and Feel
Implementing a Tree Model
Custom Rendering
Custom Editing
2.
Tabular Data and JTable
Presenting Tabular Data
JTable and Supporting Classes
Implementing a Tree Model
Customizing Look and Feel
Custom Rendering
Custom Editing
3.
Managing the Model
Adapting Existing Data Structures
Very Large Data Sets and GUIs
Caching
Lazy Evaluation Using Tree and Table Models
Limiting the Cache with an Evictor
Anticipating User Requests
Module 3: Advanced GUI Design with JFC
1.
Organizing Application Windows
Viewport Abstraction
JScrollPane
Scrollable Elements
Customizing Scrolling
Tabbed Panes
Splitter Panes
2.
Popup GUI Elements
Dialog Boxes
Message Boxes
Using File Choosers
Customizing File Choosers
Using Color Choosers
Custom Dialogs
Tooltips
Popup Menus
3.
Data Transfer
The Data Transfer Model
Transferable Objects
Data Flavors and MIME Types
The Clipboard API
The Drag-and-Drop API
Appendix A. References
Appendix B. Swing Events – Quick Reference
System Requirements
Hardware – minimal: Pentium 500MHz, 128 meg RAM, 500 meg HD.
Hardware – recommended: Pentium 1.5gHz, 512 meg RAM, 1
gig HD.
Operating system: Tested on Windows XP Professional. The course software should be viable on all
Windows systems which support J2SE 5.0.
Software: All free downloadable tools.