Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications

Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications

By: Romain Guy (author), Chet Haase (author)Paperback

2 - 4 weeks availability


Filthy Rich Clients refers to ultra-graphically rich applications that ooze cool. They suck the user in from the outset and hang on to them with a death grip of excitement. Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java(TM) Applications shows you how to build better, more effective, cooler desktop applications that intensify the user experience. The keys to Filthy Rich Clients are graphical and animated effects. These kinds of effects provide ways of enhancing the user experience of the application through more attractive GUIs, dynamic effects that give your application a pulse, and animated transitions that keep your user connected to the logical flow of the application. The book also discusses how to do so effectively, making sure to enrich applications in sensible ways. In-depth coverage includes *Graphics and GUI fundamentals: Dig deep into the internals of how Swing and Java 2D work together to display GUI applications onscreen. Learn how to maximize the flexibility of these libraries and use them most effectively. *Performance: Follow in-depth discussions and tips throughout the book that will help you write high-performing GUI applications. *Images: Understand how images are created and used to make better Java applications. *Advanced graphics: Learn more about elements of Swing and Java 2D that are of particular benefit to Filthy Rich Clients. *Animation: Discover general concepts of animation, as well as how to use the facilities provided in the Java platform. Learn new utility libraries that vastly simplify animations in Java. *Effects: Learn how to create, customize, and use static and animated effects-the mainstays of Filthy Rich Clients. Code examples illustrate key concepts, and the book's companion Web site,, includes extensive demos, utility libraries, additional information on related technologies, and more. Informal, fun, and, most of all, useful, this book is great for any developer working with Java to build desktop applications.

Create a review

About Author

Chet Haase is a client architect in the Java SE group at Sun Microsystems. Passionate about graphics, he works with all desktop Java technologies, including Swing and Java 2D. He's worked with graphics technologies from 2D to 3D and from applications down to the driver level. Chet holds an M.S. in computer and information sciences from the University of Oregon and a B.A. in math from Carleton College. Romain Guy has served as a software engineer at Google and on the Swing Team at Sun Microsystems. His primary interests are graphics and graphical user interface development. Romain has written for several print and online journals, and he holds an M.S. in computer and information sciences.


Foreword xviiPreface xixAcknowledgments xxvAbout the Authors xxviiIntroduction 1Part I: Graphics and GUI Fundamentals 9Chapter 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 151Chapter 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 263Chapter 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 421Chapter 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 549Index 553

Product Details

  • publication date: 09/08/2007
  • ISBN13: 9780132413930
  • Format: Paperback
  • Number Of Pages: 608
  • ID: 9780132413930
  • weight: 939
  • ISBN10: 0132413930

Delivery Information

  • Saver Delivery: Yes
  • 1st Class Delivery: Yes
  • Courier Delivery: Yes
  • Store Delivery: Yes

Prices are for internet purchases only. Prices and availability in WHSmith Stores may vary significantly