Java Foundation Classes in Over 1000 Pages

Comprehensive with good examples. Should have been organized as a reference book.


ORIGINAL DRAFT

There’s no question that when you spend $49.95 on a book, its nice to get your money’s worth. With 1040 pages, Java Foundation Classes by Mathew T. Nelson, from McGraw Hill, delivers a lot of information. The JFC is clearly an important new technology, of interest to a lot of developers today. This book provides a comprehensive look at the JFC, combined with a rich set of examples that set the stage for a deeper understanding of the JFC.

The fly in the ointment here is that the book is poorly organized, especially for sequential reading. Its a great reference book and an excellent supplement to a good JFC tutorial, though the author seems to be trying to accomplish both goals. Taken as a reference, it provides good entry points ranging from a simple example in the first chapter to using the JFC’s document capabilities and understanding the Accessibility API.

The real meat of this book is in Chapter 8: JFC by Class, which covers each of the major classes alphabetically. At over 800 pages, this chapter is fairly complete but assumes that you already have a basic understanding of the way the JFC is organized, which earlier chapters fail to effectively prepare you for. The examples are well designed and the coverage is very good but it seems to me that this chapter alone could have been organized by concept and crafted into a more effective reference book.

There’s a lot to gain from the other chapters. Chapter 4: Pluggable Look and Feel will be important to developers who want or need to address this area, although Sun cautions us that changes are still to come. The coverage in Chapter 5: JFC Documents and Text Components is very insightful. My own findings suggested that this part of the JFC is also undergoing a series of changes that will make it more stable in future versions. Most of the critical ideas and APIs will still apply and the concepts explored in this chapter are valuable.

A full four chapters are dedicated to examples and applications. Chapter 10: A File Browser, Chapter 11: Adding Items to and Removing Items from JTrees, Chapter 12: A Simple Paint Program and Chapter 13: A Simple Word Processor. These provide an look at practical issues that arise when doing real development with the JFC. The examples are sufficiently involved to explore meaningful themes and a number of potential problems that might typically arise in your own development efforts.

This book provides the reader with a lot of valuable information. The fact that you need a foundation in the more basic concepts of JFC before you read it should guide your purchase decision. If you’ve read a tutorial or other JFC books, its an excellent buy given the reference section, example programs and practical knowledge distributed through its pages. The book’s flow, unfortunately, is less than idea. The order in which ideas are presented is sometimes awkward and the information is often scattered, but the book still provides a wealth of information, some of which may get you out of trouble if your project makes heavy use of the JFC.