Filthy Rich Clients: Developing Animated & Graphical Effects for Desktop Java Applications (Java)

  Author:    Chet Haase, Romain Guy
  ISBN:    0132413930
  Sales Rank:    110456
  Published:    2007-07-20
  Publisher:    Prentice Hall PTR
  # Pages:    432
  Binding:    Paperback
  Avg. Rating:    5.0 based on 9 reviews
  Used Offers:    13 from $25.65
  Amazon Price:    $31.49
  (Data above last updated:  2008-11-26 05:35:00 EST)
  
  
Sort customer reviews by:
  
Show All Reviews on Page      Hide All Reviews on Page
   
  
Filthy Rich Clients: Developing Animated & Graphical Effects for Desktop Java Applications (Java)
  

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™ 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, http://filthyrichclients.org, 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.

                  Reader Reviews 1 - 11 of 11                 
  
  
Review
Date
Review
Rating(5 High)
Review
Helpful
to:
Customer Review Reviewer
Info
Permanent
Link
Reader Reviews Below Sorted by Newest First
08-14-08 5 2\2
(Hide Review...)  EXCELLENT Learning Material
Reviewer Permalink
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.
(Review Data Last Updated: 2008-11-26 05:37:34 EST)
04-18-08 3 0\3
(Hide Review...)  Very informative, but how convoluted is the access to the demos!
Reviewer Permalink
I have also enjoyed this book very much. Many of these techniques, such as using of intermediate images, were known to me, but numerous details escaped my attention. For example, using of 'compatible images.' I had no idea that this notion exists. I also enjoyed the timing experiments with wait and disclosure of its granularity. Their description of Animators is probably the best and most comprehensive of everything what I saw so far, its a real value-add for me.

I will not repeat the positive accolade summarized here by others, I have one very substantial objection, which is really well summarized in the title used by someone else's comment:

"Practice what you preach."

The book preaches performance, efficiency and style, and yet the authors implement some enormous convoluted scheme around their own code sniplets!

Of course, interested in all the timings and performance of the examples, I wanted to run and watch them. And... I failed at first. I have spend, or wasted rather if you so want, a lot of time in an attempt to achieve this goal.

This sounds so easy nowadays to provide Webstart Java, or merely to deliver some *.java or *.class files, separate or in a *.jar archive.

Not so for Chet and Romain: Their own web page claims that you can download a plugin for Net-Beans and run the examples. Net Beans has proven to be a product, a specific development environment, with which you may or may not be familiar. I never used it and I cannot operate it. Nor am I interested in learning it, being perfectly happy with my own Java setup. But be it as it may, I installed it in the hope to run these demos. It flooded my disk with some 125Mbytes and thousands of files, the usual mayhem, but we have now Terabytes at home, don't we? I also downloaded the plugin, and started to click around to get anything running. Lost in unfamiliar windows and menus I found nothing, no way to start any demo.

I must be getting old. My rusty PhD Dr.Evil brain is too stubborn to crack usage of NetBeans, I failed the IQ test. All right than, I give up. Lets download the source code, run javac and be happy. What can be so difficult, wouldn't you think Minime?

Nope! The adventure has just begun!!

Click on Chapter 2, Swing Rendering Fundamentals. You will get an archive frc-chapter2.zip, in which root directory is no Java code at all. I see merely two folders and two empty files with the same name. On a hunch, step down into the directory SwingRenderingFundamentals, only to find another set of folders and a set of empty files, each with the same name like one of the directories. On a hunch lets step down into HighlightedButton, where we find a bunch of alien looking files and 3 more directories, with you guessed it, 3 more empty files carrying the names of these directories.

Among them is build.xml. XML eh? Hmm... what do I do with that? None of my systems can do anything with XML, this book is not about XML, I do not need to use XML, do I? It's a practitioners book about a specific aspect of Java. I would be happy to stay with "javac" and "java" only, please.

On several places I see a directory called CVS, this may or may not be a name of some source code managing tool. For example, a CVS directory (accompanied again by an empty file with the same name) contains 3 files. Each seem to have some generated content, like this file called Entries: /HighlightedButton.java/1.1/Tue May 01 22:48:46 2007/-ko/
Hm... It most probably serves a project tool of a sort. But how this relate to the book and to the task at hand?

But one directory name is "src". Source, hurray, the treasury hunt might be close to an end! Indeed, this is how you can 'fish' for Java files, best done with a script of a sort to copy all java files into one single place. You will be fine, most of them do not has any package specification corresponding to the directory they were found in. Once you get these files filtered out, you will even find among them Java files containing mere 2-3 lines of code, accompanied by the monster 30-lines Sun copyright node. Vive la lawyers!

Equally convoluted is the way to access these files on Java.net. In a hope for an easy one-click demo, boy I am a lazy spoiled individual, and not willing to give up just yet, I registered an account with Java.net and dived into filthyrichclients.dev.java.net, only to find the same convoluted way of keeping here and there a Java file among a forest of directories and sidecar files. Here however, I got finally educated that CVS is a repository system, and the web pages provide some comprehensive help in its use.

Please do not take me wrong: I do not want dismiss usability of any tool, like NetBeans or CVS, but pardon me, I was happy with my setup. "If it isn't broken, do not fix it," I do not need to get hundreds of megabytes of some unrelated software in order to find a few demo lines of Java, do I?

Authors of a book teaching practitioners in minimality of algorithmic and best application of a graphical API, claiming to provide code examples of merit, should be focussed strictly on the implementation of just such philosophy, and not on their tools. A use of a language like Java can be explained and demo'ed using strictly the Java compiler and its own Java Virtual Machine. Compare this convoluted delivery with other Sun Java tutorials and their one-click demos. I hope that the authors would use "find" of their vast repositories of files to make a tiny set of *.java files, maybe even of class files. That would be all what a reader would need.
(Review Data Last Updated: 2008-08-15 05:35:59 EST)
03-31-08 5 (NA)
(Hide Review...)  An excellent must have for J2SE
Reviewer Permalink
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.
(Review Data Last Updated: 2008-04-17 01:35:14 EST)
02-28-08 3 0\7
(Hide Review...)  Practice what you preach
Reviewer Permalink
I want client-side java very much to succeed, especially now that it is open source, but the java.com site itself uses flash instead of applets, and the first author of this book no longer even works for Sun on java stuff - he now works on Adobe Flex:
http://graphics-geek.blogspot.com/2008/02/what-hello-world.html
(Review Data Last Updated: 2008-03-31 19:35:34 EST)
12-08-07 5 0\1
(Hide Review...)  Java Can Be Both Beautiful and Responsive
Reviewer Permalink
This book is fantastic - so many tips and tricks that I was unaware of. I want more!! I hope a sequel is in the making!! Check it out!! You won't be disappointed!!
(Review Data Last Updated: 2008-02-19 10:21:58 EST)
12-07-07 5 1\2
(Hide Review...)  Java Can Be Both Beautiful and Responsive
Reviewer Permalink
This book is fantastic - so many tips and tricks that I was unaware of. I want more!! I hope a sequel is in the making!! Check it out!! You won't be disappointed!!
(Review Data Last Updated: 2008-02-20 21:31:44 EST)
12-02-07 5 (NA)
(Hide Review...)  Any advanced programming collection needs this.
Reviewer Permalink
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.
(Review Data Last Updated: 2007-12-08 07:54:01 EST)
10-10-07 5 0\2
(Hide Review...)  A must have ...
Reviewer Permalink
This is a very good book. It can enlighten even your basic knowledge
about java 2d drawing and swing. It is not a book for beginners. If you
love swing/java2d this is the book for you!
(Review Data Last Updated: 2007-12-03 10:57:47 EST)
10-05-07 5 0\1
(Hide Review...)  Filthy Rich Clients
Reviewer Permalink
This very practical book is full of usefull tips to create your own filthy rich client. Definately worth reading!
(Review Data Last Updated: 2007-10-11 03:00:10 EST)
08-22-07 5 6\6
(Hide Review...)  A fun and useful Java book
Reviewer Permalink
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. 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
Continues looking at Java 2D and Swing. The first pat talks about composites, gradients, and image processing support in Java. The second part talks about Swing components that support graphical applications - the glass pane, layered panes, and the repaint manager.
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
Discusses the basics of animation in Java and the existing facilities in the core language that make it possible. Covers the Timing Framing library that simplifies Java animation.
Chapter 12. Animation Fundamentals
It's About Time; Fundamental Concepts; 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
Effects are only possible after you really understand parts one through three. Individual effects are covered and explained in detail if not overly mathematically complex. The section ends by showing how an example graphically rich client might be developed from beginning to end.
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 ;Animated Transitions: Under the Hood, or How Do You Get Swing to Do That?; Summary;
Chapter 19. Birth of a Filthy Rich Client
Workflow Paper Design; he Vision; Screen Paper Design; Mockup; From Mockup to Code; But I'm Not an Artist; Choosing Nice Colors; Read Design Books; Summary;

Overall, this is a very interesting book full of useful information both language-wise and effects-wise that I highly recommend.
(Review Data Last Updated: 2007-09-07 07:39:57 EST)
08-22-07 5 8\9
(Hide Review...)  A fun and useful Java book
Reviewer Permalink
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. 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
Continues looking at Java 2D and Swing. The first pat talks about composites, gradients, and image processing support in Java. The second part talks about Swing components that support graphical applications - the glass pane, layered panes, and the repaint manager.
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
Discusses the basics of animation in Java and the existing facilities in the core language that make it possible. Covers the Timing Framing library that simplifies Java animation.
Chapter 12. Animation Fundamentals
It's About Time; Fundamental Concepts; 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
Effects are only possible after you really understand parts one through three. Individual effects are covered and explained in detail if not overly mathematically complex. The section ends by showing how an example graphically rich client might be developed from beginning to end.
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 ;Animated Transitions: Under the Hood, or How Do You Get Swing to Do That?; Summary;
Chapter 19. Birth of a Filthy Rich Client
Workflow Paper Design; he Vision; Screen Paper Design; Mockup; From Mockup to Code; But I'm Not an Artist; Choosing Nice Colors; Read Design Books; Summary;

Overall, this is a very interesting book full of useful information both language-wise and effects-wise that I highly recommend.
(Review Data Last Updated: 2007-10-06 07:41:43 EST)
  
                  Reader Reviews 1 - 11 of 11                 
  
  
  
  
  
  

Because the data used to generate this site come from outside sources, VeryWellSaid.com cannot guarantee the completeness or accuracy of the data.
Search VeryWellSaid™
Google
Web VeryWellSaid™
New subjects are added every week.
View Subjects Below by:
* Top Selling
 (click category name, left)
* Top-Rated Top Sellers
 (click 'Top Rated', right)
In the news...  
Dubai\UAE Top Rated
Influenza\Bird Flu Top Rated
Iraq Top Rated
Supreme Court Top Rated
All Books Top Rated
Arts Top Rated
Photography Top Rated
Digital Photography Top Rated
Digital Cameras Top Rated
Biography Top Rated
Business Top Rated
Management Top Rated
Marketing Top Rated
Sales Top Rated
Stocks Top Rated
Bonds Top Rated
Real Estate Top Rated
Trading Top Rated
Commodities Trading Top Rated
Time Management Top Rated
Starting A Business Top Rated
Children's Top Rated
Comics Top Rated
Computers Top Rated
PC Top Rated
Mac Top Rated
Programming Top Rated
Design Patterns Top Rated
.Net Top Rated
C# Top Rated
Vb.Net Top Rated
Asp.Net Top Rated
Java Top Rated
Python Top Rated
PHP Top Rated
Perl Top Rated
Javascript Top Rated
Ajax Top Rated
CSS Top Rated
Open Source Top Rated
SQL Top Rated
Databases Top Rated
Oracle Top Rated
MySql Top Rated
Sql Server Top Rated
IIS Top Rated
Apache Top Rated
Linux Top Rated
Windows Server Top Rated
Project Management Top Rated
HTML Top Rated
UML Top Rated
IT Certifications Top Rated
Cisco Certifications Top Rated
MCSE Top Rated
MCSD Top Rated
Cooking Top Rated
Italian Cooking Top Rated
Vegetarian Cooking Top Rated
Wine Top Rated
Engineering Top Rated
Entertainment Top Rated
Health Top Rated
Nutrition Top Rated
Dieting Top Rated
Sex Top Rated
History Top Rated
Military History Top Rated
British History Top Rated
Middle East History Top Rated
Land Battles Top Rated
Naval Warfare Top Rated
Air Warfare Top Rated
9/11 Top Rated
Terrorism Top Rated
Home Top Rated
Mortgage\Home Equity Loan Top Rated
Cars Top Rated
Car Buying Top Rated
Sports Cars Top Rated
Cat Top Rated
Humor Top Rated
Horror Top Rated
Law Top Rated
IP Law Top Rated
Legal History Top Rated
Fiction Top Rated
Oprah's Book Club Top Rated
Medicine Top Rated
Cancer Top Rated
Stroke Top Rated
Heart Disease Top Rated
Fertility Top Rated
Diabetes Top Rated
Pharmacology Top Rated
Back Problems Top Rated
Menopause Top Rated
Thyroid Top Rated
Pain Top Rated
Organic Chemistry Top Rated
Immune System Top Rated
Mystery Top Rated
Nonfiction Top Rated
Outdoors Top Rated
Running Top Rated
Radio Control Models Top Rated
Guns Top Rated
Parenting Top Rated
Divorce Top Rated
Professional Top Rated
Reference Top Rated
Religion Top Rated
Romance Top Rated
Science Top Rated
Physics Top Rated
Chemistry Top Rated
Astronomy Top Rated
Psychology Top Rated
Science Fiction Top Rated
Sports Top Rated
Teens Top Rated
Travel Top Rated
USA Top Rated
Europe Top Rated
France Top Rated
Italy Top Rated
England Top Rated
China Top Rated
All Books Arts Biography Click Here For An A-Z Index Of All 213 Best-Seller Subjects Business Children's Comics
Computers Cooking Engineering Entertainment Health History Home Horror Humor Law Fiction Medicine Mystery
Nonfiction Outdoors Parenting Professional Reference Religion Romance Science Sci-Fi Sports Teens Travel
In Association with Amazon.com

Cache miss
(not cached)