• List Price: CDN$ 41.95
  • You Save: CDN$ 18.44 (44%)
FREE Shipping on orders over CDN$ 25.
Usually ships within 2 to 4 weeks.
Ships from and sold by Amazon.ca.
Gift-wrap available.
Swing Hacks: Tips and Too... has been added to your Cart
+ CDN$ 6.49 shipping
Used: Good | Details
Sold by Daily-Deal-
Condition: Used: Good
Comment: This Book is in Good Condition. Used Copy With Light Amount of Wear. 100% Guaranteed.
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

Swing Hacks: Tips and Tools for Killer GUIs Paperback – Jun 11 2005

See all formats and editions Hide other formats and editions
Amazon Price New from Used from
"Please retry"
CDN$ 23.51
CDN$ 19.20 CDN$ 3.14

Product Details

Product Description


"It might sound like a 1950s pulp murder mystery novel, but Swing Hacks is actually a guide for Java developers that's packed with ways to get the most from the Swing application program interface. It's no Swing bible, there's already quite a few of those, but it's a great reference guide for all the cool stuff. The book is especially suited to client-focused Java developers who want to deliver polished applications, those who want to push Java to its limits, and coders who want to learn powerful techniques for their own applications. It has the typical depth you'd expect from an O'Reilly title and the practical approach ensures it doesn't get sidetracked. The chapters on Transparent & Animated Windows and Rendering are particularly helpful." .net magazine, September 2005

About the Author

Joshua Marinacci is the author of "The Java Sketchbook" column for java.net, covering topics in Java client-side and web development. A Java programmer since 1995, he's currently working on enterprise document management software. Joshua earned his BS from Georgia Tech in 1997, and has been a professional programmer for over a decade.

Chris Adamson is the Associate Online Editor for the O'Reilly web sites ONJava.com and java.net, and is the author of O'Reilly's QuickTime for Java: A Developer's Notebook. His consulting company, Subsequently & Furthermore, Inc., specializes in Java media development. Chris has a BA and BS from Stanford University and an MA from Michigan State University.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

Customer Reviews

There are no customer reviews yet on Amazon.ca
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on Amazon.com (beta)

Amazon.com: 24 reviews
34 of 35 people found the following review helpful
Finally, a great Swing 'power user book' July 10 2005
By Martin Backe - Published on Amazon.com
Format: Paperback
I'm surprised that it's taken this many years for a book like this to make it to market. There are good Swing books available, but they rarely go beyond the basics. As soon as I heard about this one, I pre-ordered and began waiting.

It essentially consists of 99 power 'tricks' for creating WOW effects in your user interfaces. Some are eye candy that you'd probably never put in a production application, but I'd say 80%+ could be applied to every day app's. I'll be spending many hours pouring over the details of each hack to gain the deep insight offered by this book.

This book is going to allow me to reach the next level of Swing polish. I find it hard to believe that most people that consider themselves Swing developers wouldn't gain a lot from reading this book. Run, don't walk, and get this book.

There are a few minor disappointments, but I emphasis minor. The production quality seems a bit rushed as there was quite a few obvious errors in the preface alone, although not of a technical nature. Perhaps only the preface escaped any editing oversight, since the remainder of the book had nothing that jumped out at me.

As usual today, the examples are all available for download from OReilly's website. But I wonder why they didn't take the extra step of providing runnable versions of each hack. You have to compile each one - a minor annoyance. When browsing the book it would have been cool to be able to just double-click an associated jar file to see the effect in action.

The author clearly uses a Macintosh, since all (perhaps I missed one or two) the screen shots are from a Mac, and some of the Hacks relate to duplicating Mac OS features. Seeing that the majority of Swing applications are probably deployed on Windows machines, a bit more emphasis on Windows would have been more appropriate. And the screen shots could have used a cross-platform look-and-feel instead of the Mac OS.

In short summary, the good, the bad, and the ugly...

The Good: Insanely great tricks for getting the most out of Swing.

The Bad: Perhaps too much Macintosh focus and not enough Windows (XP).

The Ugly: Probably a bit rushed out the door since there are some glaring production mistakes, like chapter summaries without the chapter names or numbers, etc.
19 of 19 people found the following review helpful
Pretty good book on Swing insider tricks Dec 15 2005
By calvinnme - Published on Amazon.com
Format: Paperback
This book is a pretty good one in the O'Reilly hack series, showing 100 specific tricks that you can do with Swing that you don't normally find in books or websites on the subject.

Chapter 6, "Transparent and Animated Windows," is one of my favorites because it helps my Swing components look a little more Mac-like. Creating transparent windows, creating frame-anchored sheets for dialogs, animating the sheet dialog, and sliding notes out from the taskbar are some of the hacks in that chapter. All it takes is a little knowledge of the Swing heavyweight component glass pane, and you're up and running. Buried in Hack 54 is an invaluable gem: Want to antialias all the text on your Swing application without touching any code? No problem, just add the following definition to the command line when you invoke your application:

java -Dswing.aatext=true MyStartClass

Chapter 10, "Audio," is also a good chapter to look at, because many Swing programmers tend to overlook sound as an important part of their application, plus since I am a multimedia programmer it is the kind of topic I would enjoy anyways. Maybe you want the swishing sound of a folder closing or of a clanging trash can when you throw away something in your Swing application. Hacks 70 through 73 discuss playing sounds with applets, JavaSound, the Java Media Framework, and Quicktime for Java technologies. Hack 74 shows you how to add MP3 support to the Java Media Framework API as well. This is not really a Swing hack, but it is simple to do and interesting.

Chapter 12, "Miscellany," presents us with some obvious tricks and some very important tips. For example, most programmers know that whenever they write event-handling code, such as an ActionListener that gets called when a button is pressed, they need to handle things quickly. You never want to spend any more time than you have to processing on the event-handling thread, or your GUI will become nonresponsive and be unable to repaint itself efficiently. Taking on a larger task often means kicking off a separate "worker" thread from the event-dispatching thread and letting that run in the background. However, what many beginning Swing programmers forget is that Swing is not thread-safe, which means that if you have GUI updates from that worker thread, you should always execute them back on the event-dispatching thread. In short, this means you should create another Runnable thread that kicks off serially with other GUI updates on the event-dispatching thread. You can do so by executing it with a call to SwingUtilities.invokeLater(myGUIUpdateThread).

Now for the few hacks that I did not like:

Hack #17 "Reorder a JList with Drag-and-Drop" is a good example of something potentially useful that just doesn't quite look right when you code it up and execute it.

Hack #42 "Make Your Frame Dissolve", is so bad it's almost funny, and would best be described as a failed hack.

Hack #48 "Make Text Components Searchable" is a really weak implementation, not even bothering to use highlighters. There's a much better example in Kim Topley's "Core Swing: Advanced Programming", which is out of print though it has some worthwhile content even now.

Hack #59 "Create a Color Eyedropper" is so visually bad that you will cringe when it executes.

However, I would not let these few failed hacks detract from the overall value of such a unique book. However, you might want to go to O'Reilly & Associates website and download the code first to see if this book is really up your alley before you purchase it. I see that the table of contents is not listed by Amazon, so I do that here for the purpose of completeness:

Chapter 1. Basic JComponents

Chapter 2. Lists and Combos

Chapter 3. Tables and Trees

Chapter 4. File Choosers

Chapter 5. Windows, Dialogs, and Frames

Chapter 6. Transparent and Animated Windows

Chapter 7. Text

Chapter 8. Rendering

Chapter 9. Drag-and-Drop

Chapter 10. Audio

Chapter 11. Native Integration and Packaging

Chapter 12. Miscellany
8 of 9 people found the following review helpful
Beyond the Tip of the Iceberg Nov. 17 2005
By Ernest Friedman-Hill - Published on Amazon.com
Format: Paperback
Most Java programmers, if they use the Swing GUI toolkit at all, use it in a fairly superficial way, accepting default configurations for most components and letting the built-in "look and feel" supply the appearance and behavior. The more knowledgeable programmer might know how to adopt the platform-specific look and feels on each platform. But it's quite rare for a Swing programmer to customize things much beyond that.

All of which is really a shame. Swing is like that cliched iceberg: just the spare top of it floats above the surface, with the vast bulk of possibility submerged and lurking in the depths. In this clever book, Marinacci and Adamson show you how to mine those depths and come up with GUIs that don't look like Java applications at all.

The book is a collection of recipes for achieving some really spectacular effects. I appreciated that lot of thought seems to have been put into making the examples small enough for a book. There are only a few multi-page listings among the 100 recipes between these covers.

If I have a complaint, it's that the book has a fairly obvious slant toward the Mac OS X platform. Many of the hacks are devoted to making your application emulate some OS X feature or another. In a way, this is justifiable -- after all, OS X's GUI includes many innovations not included in Swing by default -- but it's likely to leave those folks primarily interested in making Swing fit in better on Windows a little jealous.
5 of 5 people found the following review helpful
Interesting but not very useful Feb. 2 2008
By Dmitri Petrov - Published on Amazon.com
Format: Paperback Verified Purchase
This book gives a good set of more in depth approaches to building GUI in Swing. While reading it I had a lot of 'that's interesting' moments. However, a lot of the examples feel more like an idea of what needs to be done to achieve something rather than a complete (and robust) implementation. What is more disappointing, I found that some advice in the book is misleading. For example Hack #57 demonstrates how to use the glass pane to intercept and riderect mouse events. Unfortunately, as demonstrated, this approach doesn't work at all in the applications that use any components that have menus. A very significant shortcoming, in my opinion, that is not mentioned in the book.
5 of 6 people found the following review helpful
concise examples across much of Swing July 15 2005
By W Boudville - Published on Amazon.com
Format: Paperback
If you program in Java, often you have graphical elements in a user interface. The original default AWT widgets have been largely supplanted by Swing widgets. These are more powerful and usually easier to program, as shown in this text.

While the hacks are not meant to be a comprehensive sweep over all the Swing widgets, there is enough variety amongst them to easily show you the abilities. The coding is useful in providing relatively succinct examples. UI programming is often very wordy in the source code. But the hack examples convey working solutions notable for their brevity. In and of itself, this is a virtue of the book. For it shows that Swing can be concisely applied. Less typing, and easier to understand. Which also means easier to debug.