Full, Comprehensive JFC/Swing Coverage, Unleashed

Top to bottom JFC coverage, deep exploration, insightful, good examples, worth the price.


The Unleashed series of books from Sams are at best inconsistent and sometimes outright misleading. This one, however, lives up to its name and brings to bear a lot of deep knowledge about the JFC (Java Foundation Classes) that is not exposed in many of the other JFC (or Swing) books. The coverage is nicely organized and steps through the topic matter in readable, insightful style. Having read every JFC or Swing book I know of to date, I can honestly say that this one brought enough new material to the table to make me more than willing to pay the shelf price without regret. This is also the first JFC book that assumes you are working with the Java 1.2 release and seems to have made no compromises in order to ship early. It struck me as worth the wait.

The book is divided into 6 major parts. Part 1 addresses the JCF architecture, covering the Model-View-Controller paradigm, the fundamentals of JComponent and basic JFC programming techniques. I found the JComponent chapter especially well presented, unveiling a deeper understanding that most books on this topic have yet to provide. Part 2 covers the main components, including buttons, text components, frames, windows, menus, toolbars, lists, trees and tables. The examples are useful and the components are well presented. Part 3 talks about containers, such as JPanel, Box, JTabbedPane, scrolling components, JSplitPane and internal frames.

Part 4 covers dialog boxes, including those based on internal frames. These also include JOptionPane, choice dialog boxes, JDialog itself and progress monitors. Part 4 takes an interesting look at what it means to extend JFC components. This is the kind of information that’s interspersed in most related books, as it is in this one, but a more concentrated exploration is presented in three chapters that cover subclassing existing components, alternate look and feels as well as creating your own custom components.

Part 6 looks at advanced topics, including custom cursors, focus managers, tooltips, undo and redo, keyboard navigation, timers, accessibility, drag and drop, and Swing utilities. The appendices present a reference to some of the more important JFC classes, along with the classes developed for the book, including some rudimentary chart classes used as examples earlier in the book.

I’m particularly interested in Swing and JFC myself and read everything I can on this topic. This makes me less that completely unbiassed but possibly more sensitive to the shortcomings of a book like this. I was satisfied with the material and found some insights that have not been presented in competing books. The coverage is sufficiently comprehensive to make this a great single JFC book if you only want to buy one of them. If you use the JFC in your applications, this book is a good buy. While I cannot recommend the Unleashed series, this book rises to the top and delivers on a promise to unleash the power of the JFC as a whole.