JHotDraw is a Java GUI framework for technical and structured Graphics. It has been developed as a "design exercise" but is already quite powerful. Its design relies heavily on some well-known design patterns. JHotDraw's original authors have been Erich Gamma and Thomas Eggenschwiler.
There is a JHotDraw 6.0 beta 1 release available for download!
You find the project page under http://www.sourceforge.net/projects/jhotdraw.
It includes a download page with an index of all releases and several discussion forums about JHotDraw-related topics.
The aim of making JHotDraw an open-source project is:
to gain a wider audience for this framework among developers
to build new applications based upon JHotDraw
to let application development influence the development of JHotDraw
to add new and advanced features
to drive its further development
to port JHotDraw to new Java GUI toolkits
to enhance and refactor the exisiting code
to identify new design patterns and refactorings
to make it an example for a well-designed and flexible framework
to examine the relevance of new Java APIs to JHotDraw (e.g. usefulness of Java 2D API for JHotDraw)
to learn and to have fun
Any developer and software designer who wants to contribute is welcome! Please have a look at the list of applications that have been built using JHotDraw.
latest version to download: JHotDraw
6.0 beta 1
You can download the latest packaged version (currently version 5.3) or earlier versions (most notably 5.2).
There is a new JHotDraw 6.0 beta 1 release available which uses the new package structure of "org.jhotdraw" instead of the old "CH.ifa.draw" package structure. This release is identical to the 5.4 beta 2 release except for the package structure. Both give you a preview of some up-coming features.
JavaWorld published an introductionary article "Become a programming Picasso with JHotDraw". The accompanying example application JModeller - a simple UML editor built using JHotDraw - shows some of the described design patterns and demonstrates how to use and extend existing classes. An updated version of JModeller is compatible with JHotDraw 5.3. Furthermore, JHotDraw 5.4b1 requires some changes as well (many thanks to Christian Ullenboom and Peter Morch for their updates). The most recent version of JModeller is a CVS snapshot and is based on JHotDraw 6.0.
Besides the documentation which is included in the download package more information about the internal architecture of JHotDraw and guidance for using the JHotDraw can be found here:
A description of the design patterns used in JHotDraw in the form of a pattern language by Douglas Kirk. Especially, the pattern index in form of a clickable pattern map shows the relation of different patterns.
A case study about an older version of JHotDraw can be found in the dissertation of Dirk Riehle.
The results to the survey "Applications for JHotDraw" may give you some impressions about the usability and applicability of the JHotDraw framework to your requirements. Of course, the result serves as starting point for our further development as well. Please note that some of the problems and difficulties related to the framework have been removed already.
JHotDraw is hosted on SourceForge. You can have a look at the internal JHotDraw developer web page and register as developer at SourceForge. Please contact one of the admins for the JHotDraw project to get added as a developer.
Last update: 11.08.2007