Picture Book is an image organizer program developed using Swing/Java. It includes features such as full-screen, and thumbnail view for jpg and supporting formats.

The program is capable of taking any number of image files and building them into a list for viewing. Utilizing a Smart Resizing System, the program chooses the size of its layout depending on the resolution size of the desktop. Found in the program is a window that includes N-number of thumbnail pictures, with the number N determined by the size of the layout. At anytime during the operation of the program, at most 3*N thumbnail pictures plus N full-view pictures will be cached. This caching strategy allows the program to handle a large number of picture files without sacrificing performance. Click Here for detailed information on these technical features.

This project was originally intended to utilize a fully customized GUI instead the dull original Swing defaults. This is a project that demonstrates how to customize Swing. As we all know, customizing complex components in Swing is a diffiuclt task. For example, there are no methods available with Swing to make a customized divider for the Split Pane. Neither are there methods to alter some of the colors of components with Swing. Some of the Swing components had to be extended in order to achieve certain customizations for this GUI.

As consideration for future releases, I intend to extend its functionality in terms of file management by enabling it to copy, move, rename, remove and even edit the actual files on disk. As to extending the graphical user interfaces I will attempt to add navigation controls to its full-screen and slide-show panels. My final goal for this project is to extend its functionalities to compete with today¡¦s top image organizing software packages such as ACDSee.

I intend to share Picture Book as an open resource project so that developers who are interested in customizing Swing can go through this program and make their own customizations.

Third party software used:
Xml format is used for output files in this project. JDOM is used as the xml api. It is included in the jar file named jdom.jar.