Table of Contents
Part I: Graphics and GUI Fundamentals
Chapter 1: Desktop Java Graphics APIs: Swing, AWT, and Java 2D
Abstract Window Toolkit (AWT)
Java 2D
Swing
Chapter 2: Swing Rendering Fundamentals
Events
Swing Painting
Swing Rendering
Double-Buffering
Threading
Chapter 3: Graphics Fundamentals
Java 2D
Rendering
Chapter 4: Images
Image Types
BufferedImage
Image Scaling
Chapter 5: Performance
Use the Clip
Compatible Images
Managed Images
Intermediate Images
Optimal Primitive Rendering
Benchmark
Command-Line Flags
Part II: Advanced Graphics Rendering
Chapter 6: Composites
AlphaComposite
AlphaComposite: The 12 Rules
Creating and Setting Up an AlphaComposite
Common Uses of AlphaComposite
Issues with AlphaComposite
Create Your Own Composite
Summary
Chapter 7: Gradients
Two-Stops Linear Gradient
Special Effects with Regular Gradients
Multistops Linear Gradient
Radial Gradient
Optimizing Gradients
Chapter 8: Image Processing
Image Filters
Processing an Image with BufferedImageOp
AffineTransformOp
ColorConvertOp
ConvolveOp
LookupOp
RescaleOp
Custom BufferedImageOp
A Note about Filters Performance
Summary
Chapter 9: Glass Pane
Painting on the Glass Pane
Blocking Input Events
Chapter 10: Layered Panes
Using Layered Pane Layers
Ordering Components within a Single Layer
Layered Panes and Layouts
Alternative to JLayeredPane with Layouts
Chapter 11: Repaint Manager
When Swing Gets Too Smart
Meet the RepaintManager
A Reflection on RepaintManager
Summary
Part III: Animation
Chapter 12: Animation Fundamentals
It's About Time
Fundamental Concepts
Frame-Based Animation
Timing (and Platform Timing Utilities)
Resolution
Animating Your Swing Application
Summary
Chapter 13: Smooth Moves
Background: Why Does My Animation Look Bad?
What Makes Animations Choppy, and How to Smooth Them Out
SmoothMoves: The Demo
Summary
Chapter 14: Timing Framework: Fundamentals
Introduction
Core Concepts
Interpolation
Summary
Chapter 15: Timing Framework: Advanced Features
Triggers
Property Setters
Summary
Part IV: Effects
Chapter 16: Static Effects
Blur
Reflection
Drop Shadows
Highlights
Sharpening
Summary
Chapter 17: Dynamic Effects
Motion
Fading
Pulse
Spring
Morphing
Summary
Chapter 18: Animated Transitions
Animating Application State Segues
Animated Transitions: The Library
Example: SearchTransition
Example: SearchTransition Revisited: Customization
Example: ImageBrowser
Animated Transitions: Under the Hood, or How Do You Get Swing to Do That?
Summary
Chapter 19: Birth of a Filthy Rich Client
Aerith
Workflow Paper Design
The Vision
Screen Paper Design
Mockup
From Mockup to Code
But . . . I'm Not an Artist!
Choosing Nice Colors
Read Design Books
Summary
Conclusion