Programming Books C Java PHP Python Learn more Browse Programming Books
Filthy Rich Clients and over one million other books are available for Amazon Kindle. Learn more
  • List Price: $59.99
  • Save: $22.62 (38%)
Only 4 left in stock (more on the way).
Ships from and sold by
Gift-wrap available.
Add to Cart
Want it tomorrow, April 22? Order within and choose One-Day Shipping at checkout. Details
FREE Shipping on orders over $35.
Used: Very Good | Details
Sold by Boxingbooks
Condition: Used: Very Good
Comment: Book is in EXCELLENT condition - Ships direct from Amazon! Qualifies for Prime Shipping and FREE standard shipping for orders over $25. Overnight and 2 day shipping available!
Add to Cart
Trade in your item
Get a $3.19
Gift Card.
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

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

ISBN-13: 978-0132413930 ISBN-10: 0132413930 Edition: 1st

See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from Collectible from
"Please retry"
"Please retry"
$29.69 $10.23


Special Offers and Product Promotions

  • Have the next big idea for a movie? Submit a 2-15 min. concept video to Amazon Studios for a chance to have your movie made. Learn more.

Frequently Bought Together

Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications + Swing Hacks: Tips and Tools for Killer GUIs
Price for both: $58.41

Buy the selected items together
  • Swing Hacks: Tips and Tools for Killer GUIs $21.04


Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Product Details

  • Paperback: 608 pages
  • Publisher: Addison-Wesley Professional; 1 edition (August 19, 2007)
  • Language: English
  • ISBN-10: 0132413930
  • ISBN-13: 978-0132413930
  • Product Dimensions: 9.2 x 7 x 1.2 inches
  • Shipping Weight: 1.9 pounds (View shipping rates and policies)
  • Average Customer Review: 4.5 out of 5 stars  See all reviews (11 customer reviews)
  • Amazon Best Sellers Rank: #746,341 in Books (See Top 100 in Books)

Editorial Reviews

About the 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.

Excerpt. © Reprinted by permission. All rights reserved.

Welcome to Filthy Rich Clients. This book is about building better, more effective, and cooler desktop applications using graphical and animated effects. We started writing this book after our successful session on the topic at the JavaOne conference in 2006. The session explored the use of animation, advanced 2D effects, and even some 3D effects to create richer applications. But it seemed we could have spoken for days on the subject. Understanding why you should develop such applications, how the technologies that enable them work, and how you can properly develop effects that enable Filthy Rich Clients is, well, a rich topic indeed.

Hence, this book. Now we get to spend the next many pages with you, discussing fundamentals of Java, Swing, Java 2D, graphics, graphical user interfaces (GUIs), animation, performance, and advanced effects that build on all of these fundamentals in order to create beautiful applications.

Please join us for the ride. It should be fun.


The book has a sequential flow from beginning to end, so readers may want to work through it in that order, at least to understand how the material is arranged. There are plenty of code snippets and discussions in the book that are also appropriate for random access, although the technology behind any particular item might relate back to earlier discussions in the book. These relationships are generally noted when they arise so that you can more easily refer back to earlier material as background.

The original intent of the book was to explain the cool effects that we show mostly toward the end of the book. But there is currently no book, to our knowledge, that explains the background of Swing, graphics, Java 2D rendering, and animation that is necessary to understand how the effects work. So we start at the beginning. We develop the fundamentals in these areas early on, building upon them as we go, so that by the time you read the material at the end of the book, everything should make sense. 1

This book provides not only plenty of snazzy example effects you can use to create Filthy Rich Clients but also the knowledge of how it all works so that you can go further on your own.

Part I: Graphics and GUI Fundamentals

Part I covers the fundamental concepts of Java graphics and user interface programming that we use throughout the rest of the book. A comprehensive description of graphics and user interface development is beyond the scope of this book, but we cover the basic areas that enable Filthy Rich Clients sufficiently to get everyone up to speed with the APIs, techniques, and details necessary to understand the later chapters that build upon these elements. If you have a solid understanding of AWT, Java 2D, and Swing already, some of the material at the beginning of this section may be old hat for you. However, we build upon these basic concepts as we go. Also, there are plenty of interesting, deep tidbits throughout the book that should be useful to all Desktop Java programmers.

Part II: Advanced Graphics Rendering

Part II covers more advanced topics in Java 2D and Swing that are useful in creating rich interfaces. The first half of Part II covers graphics-specific technologies of composites, gradients, and image processing. The second half of Part II covers more Swing-focused technologies: the glass pane, layered panes, and the repaint manager.

Part III: Animation

A Filthy Rich Client is not static; it is alive. It needs to move. It needs to transition. It needs a heartbeat so that the user knows it is there. Looking good is half the battle. Looking alive is the rest of it.

Part III is about the fundamentals of animation that you can use to bring your applications to life. We cover some of the basics of animating graphics and GUIs, discuss the existing facilities in the Java SE core libraries for assisting in developing animations, and cover the Timing Framework library that makes developing animations in Java much easier.

Part IV: Effects

Part IV builds upon everything covered in the earlier parts of the book. Effects are at the core of Filthy Rich Clients, making the difference between a mere rich client and a Filthy Rich Client. The effects are grouped into two categories. The first category is static effects, which use graphics techniques for a richer look in applications. The second category is dynamic, or animated, effects for making GUIs move. We also cover Animated Transitions, another animated effect that is enabled through a utility library available on the book’s Web site. The section ends with a chapter that shows how a sample Filthy Rich Client was developed, from initial design diagrams through implementation of the various effects.


We have adopted an informal writing style for the book because we really feel that we are talking to you, the reader. It is not unusual for one of us to use the word “I” in any particular passage in the book. The trick is to figure out which one of us is speaking. It really doesn’t matter, of course, and you probably don’t care. But in case you do, here’s a hint: The pictures and screenshots in Romain’s sections are generally more attractive, and there are more footnotes and raw text in Chet’s sections. These differences map well to our characters: Romain has a great aesthetic sense and takes beautiful pictures, and Chet talks a lot.

Reader Requirements

Experience with the Java language and Swing is helpful. This book is not a primer on those subjects but rather assumes some familiarity with Java and Swing. However, some of the rendering fundamentals of Swing, which are important to understand in creating Filthy Rich Clients, may not be evident to even advanced Swing programmers, so the first couple of chapters of the book are devoted to explaining how Swing and Java 2D work together to create the kinds of customizable effects that we explore throughout the rest of the book.

External Resources

We have compiled information relevant to the book on the Web site This site has everything from demos to utility libraries used in the book to other information about the book and related technologies as appropriate. We’re positive there are absolutely no miisteakes in this book, but if a miracle occurs and we’re wrong about that, expect the errata to show up on this Web site.

Web Site Code

The book is full of demo code. 2 There are snippets of code spread throughout the pages. In most cases, this code is copied from demos that are posted on the book’s Web site. Where we refer to an available demo in the text, look for an “Online Demo” icon and the project name to look for on the book’s Web site. Each of these demo projects contains the buildable and runnable source code that allows you to see the application in action as well as to use the code as you see fit in your projects. The demos are not just trivial items to ignore. We expect you to go to the Web site and check things out. We specifically developed the demos hand-in-hand with writing the book, and the material in the software on the Web site integrates well with the book material throughout every chapter.

Web Site Libraries

There are also utility libraries used and described in the book. These libraries are useful for some of the demos we developed, but more importantly they are intended to be used as standalone libraries for your projects.

These libraries are available in ongoing development projects on other Web sites, listed below, but versions are provided on the book’s Web site,, that match the version used in the book. These libraries include:

  • Timing Framework: This library is described in detail in two chapters in this book (hint: look for the chapters whose names begin with the words “Timing Framework”). The project is being developed at, but a specific version of the library that matches the one used for the code and descriptions in this book is available on the book’s Web site.
  • Animated Transitions: This library is described toward the end of the book in Chapter 18, cleverly named “Animated Transitions.” Again, this project will probably also be available on, although it is not yet posted at the time of this writing. But regardless, a version that matches that described in the book will be available on the book’s Web site.

Other Projects

There are many projects out there that would be good to investigate in the pursuit of Filthy Rich Clients, but some in particular are mentioned in the book and used in some of our demos:

  • SwingLabs: Many of the utilities mentioned in the context of demos and snippets in the book are available on the SwingLabs Web site. Be sure to check out these and other technologies at
  • JOGL: The Java bindings for OpenGL library provides a way to write 3D applications and effects in Java using the OpenGL API and hardware acceleration across most platforms on which Java runs. You can find JOGL at

Other Web Resources

We both post irregularly but often to our blogs. When you want to know more about graphics, performance, Java 2D, and Java Desktop Client technologies in general, go visit Chet’s technical blog at

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

4.5 out of 5 stars
Share your thoughts with other customers

Most Helpful Customer Reviews

38 of 39 people found the following review helpful By calvinnme HALL OF FAMETOP 500 REVIEWERVINE VOICE on August 22, 2007
Format: Paperback
This is one of those "fun books" on Java that you used to see so much of in the 90's but are pretty much no longer written. This book is about building better desktop applications that employ interesting graphical and animated effects. This book was meant to be worked through from beginning to end, although if you are already familiar with the technology that does not mean you can't skip around. The book has plenty of code and some math. However, as in the example in the section on morphing, the book does not try to get into heavy-duty math. If there are open source libraries that do the trick, as there are in the case of morphing effects, the authors refer you to that library. They do explain math if all it involves is something on the level of fairly simple matrix algebra - blurring for example. The book is not a primer on Swing. It assumes the reader has experience in that area. However, some of the touchier aspects of Swing that may not be self-evident to even experienced Swing programmers are explained in the first couple of chapters of the book. In particular, the authors do a pretty good job of explaining how Swing and Java 2D work together, which is hard to find in books and even in online tutorials. Obviously, there is lots of code involved in such a book, and although there are snippets in the book to the point that you can understand what's going on, you'll want to go to the book's website at O'Reilly & Associates and download the whole thing so you can study it and play with it. The book is divided into four parts as follows:

Part I - Graphics and GUI Fundamentals
Not a fundamental tutorial on building GUI's in Java, it points out the stuff you need to get up to speed with the APIs and techniques that later parts of the book build upon.
Chapter 1.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
4 of 4 people found the following review helpful By Sean Bartholomew on August 14, 2008
Format: Paperback Verified Purchase
This book will save you hours of trouble shooting the little things that don't work as intuitively as they should in Java.
I have not found an un-useful idea here.
It also shows you how to make your application more efficient (faster).
The author has already done the timing tests and offer you the results and the routes you should take.
All in all, a fantastic find.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
3 of 3 people found the following review helpful By Noel Lynch on March 31, 2008
Format: Paperback
To push java's ui capabilities has in the past been a bit of a struggle due to the many ways of dealing with Swing, repaints, events, animation etc. This book is an absolute life saver in terms of presenting a unified best practice strategy for everything a ui developer would wish to do in java. It creates very simple applications with solid explanations of what the code is doing, from the low level to the high level. It is also written in a very personable style and the book moves easily and logically through the related material. I wish I had read this book 4 years ago.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
Format: Paperback Verified Purchase
Well written book, but i'm having trouble following it being a novice to JAVA. I think it's more intended for mid to advance JAVa programmers.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
Format: Paperback Verified Purchase
After years of programming swing data grid based applications. This book is more than a relief to read. The examples are really inspiring and are an invitation to experiment and apply them. I really learned a lot about the inner working of swing and the book kept me keen on performance. Applying animations and effects is not applicable in a lot of cases but is very good to know how to apply them when a chance comes by. For me this book is a must read if you like to program Java Swing applications.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
3 of 5 people found the following review helpful By Midwest Book Review on December 2, 2007
Format: Paperback
Libraries that cater to Java programmers will find an excellent guide in FILTHY RICH CLIENTS, which refers to rich applications that teach how to build better, more effective desktop applications that enhance user experiences. Graphical and animated effects are the focus here, with a bow to performance: chapters teach how to create, customize and translate special effects with Filthy Rich Clients and come from a client architect of a Java group at Sun Microsystems. Any advanced programming collection needs this.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Product Images from Customers


What Other Items Do Customers Buy After Viewing This Item?