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