Swing is the primary Java GUI widget toolkit. It is part of Oracle's Java Foundation Classes (JFC) — an API for providing a graphical user interface (GUI) for Java programs.Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit (AWT). Swing provides a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform. It has more powerful and flexible components than AWT. In addition to familiar components such as buttons, check boxes and labels, Swing provides several advanced components such as tabbed panel, scroll panes, trees, tables, and lists.
course content
Introduction to JFC
Abstract Windowing Toolkit Basics
Simple Layout Management
Simple Event Handling
Lightweight Controls
JFC Feature Set
JFC Architecture and Relationship to AWT

JFC Application Design
Role of a JFrame
Building a Frame-Based JFC Application
Using Dialogs

JFC Components
JFC Component Class Hierarchy
JComponent Features
Simple Control Types
Text Components
Managing Look and Feel

Architectural Patterns
Observer Pattern
Model-View-Controller Decomposition
Strategy Pattern
Factory Pattern

Trees and Tables
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

Tabular Data and JTable
Presenting Tabular Data
JTable and Supporting Classes
Implementing a Tree Model
Customizing Look and Feel
Custom Rendering
Custom Editing

Managing the Model
Adapting Existing Data Structures
Very Large Data Sets and GUIs
Lazy Evaluation Using Tree and Table Models
Limiting the Cache with an Evictor
Anticipating User Requests

Advanced GUI Design
Organizing Application Windows
Viewport Abstraction
Scrollable Elements
Customizing Scrolling
Tabbed Panes
Splitter Panes

Popup GUI Elements
Dialog Boxes
Message Boxes
Using File Choosers
Customizing File Choosers
Using Color Choosers
Custom Dialogs
Popup Menus

Data Transfer
The Data Transfer Model
Transferable Objects
Data Flavors and MIME Types
The Clipboard API
The Drag-and-Drop API