Course Catalog
Curriculum Guides
  .NET
  Java/J2EE
  XML
Downloads
Buy Courseware
Customization
News
Authors
Technical Library
FAQ
About Object Innovations
Opportunities
Contact Us
Home

 

 

   
www.objectinnovations.com
info@objectinnovations.com
877-558-7246 (toll free)  
781-466-8012  

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.