Table of Contents
Foreword xvii Preface xix Acknowledgments xxv About the Authors xxvii Introduction 1 Part I: Graphics and GUI Fundamentals 9 Chapter 1: Desktop Java Graphics APIs: Swing, AWT, and Java 2D 11
Abstract Window Toolkit (AWT) 12
Java 2D 13
Swing 13
Chapter 2: Swing Rendering Fundamentals 15
Events 16
Swing Painting 17
Swing Rendering 20
Double-Buffering 28
Threading 31
Chapter 3: Graphics Fundamentals 43
Java 2D 43
Rendering 45
Chapter 4: Images 91
Image Types 92
BufferedImage 95
Image Scaling 98
Chapter 5: Performance 115
Use the Clip 115
Compatible Images 121
Managed Images 126
Intermediate Images 134
Optimal Primitive Rendering 143
Benchmark 144
Command-Line Flags 145
Part II: Advanced Graphics Rendering 151 Chapter 6: Composites 153
AlphaComposite 153
AlphaComposite: The 12 Rules 155
Creating and Setting Up an AlphaComposite 163
Common Uses of AlphaComposite 164
Issues with AlphaComposite 168
Create Your Own Composite 170
Summary 177
Chapter 7: Gradients 179
Two-Stops Linear Gradient 179
Special Effects with Regular Gradients 182
Multistops Linear Gradient 187
Radial Gradient 189
Optimizing Gradients 193
Chapter 8: Image Processing 199
Image Filters 200
Processing an Image with BufferedImageOp 201
AffineTransformOp 203
ColorConvertOp 204
ConvolveOp 206
LookupOp 211
RescaleOp 213
Custom BufferedImageOp 214
A Note about Filters Performance 222
Summary 222
Chapter 9: Glass Pane 223
Painting on the Glass Pane 225
Blocking Input Events 230
Chapter 10: Layered Panes 237
Using Layered Pane Layers 238
Ordering Components within a Single Layer 242
Layered Panes and Layouts 243
Alternative to JLayeredPane with Layouts 244
Chapter 11: Repaint Manager 249
When Swing Gets Too Smart 249
Meet the RepaintManager 251
A Reflection on RepaintManager 253
Summary 262
Part III: Animation 263 Chapter 12: Animation Fundamentals 265
It’s About Time 265
Fundamental Concepts 266
Frame-Based Animation 266
Timing (and Platform Timing Utilities) 275
Resolution 288
Animating Your Swing Application 300
Summary 314
Chapter 13: Smooth Moves 315
Background: Why Does My Animation Look Bad? 315
What Makes Animations Choppy, and How to Smooth Them Out 316
SmoothMoves: The Demo 335
Summary 341
Chapter 14: Timing Framework: Fundamentals 343
Introduction 343
Core Concepts 345
Interpolation 359
Summary 378
Chapter 15: Timing Framework: Advanced Features 379
Triggers 379
Property Setters 392
Summary 420
Part IV: Effects 421 Chapter 16: Static Effects 423
Blur 423
Reflection 434
Drop Shadows 437
Highlights 442
Sharpening 450
Summary 458
Chapter 17: Dynamic Effects 459
Motion 460
Fading 465
Pulse 473
Spring 484
Morphing 489
Summary 495
Chapter 18: Animated Transitions 497
Animating Application State Segues 497
Animated Transitions: The Library 501
Example: SearchTransition 503
Example: SearchTransition Revisited: Customization 516
Example: ImageBrowser 519
Animated Transitions: Under the Hood, or How Do You Get Swing to Do That? 527
Summary 530
Chapter 19: Birth of a Filthy Rich Client 531
Aerith 531
Workflow Paper Design 533
The Vision 535
Screen Paper Design 537
Mockup 538
From Mockup to Code 540
But . . . I’m Not an Artist! 544
Choosing Nice Colors 545
Read Design Books 547
Summary 548
Conclusion 549
Index 553