JFig is a 2D graphics and diagram editor based on
the FIG file format. The user-interface of jfig is based on xfig, a popular graphics editor for the
X11 window system.
The jfig software is written in the Java programming language
and can be used on notebooks, PCs, and workstations running
Windows 2000/XP, Mac OS X, OS/2, and most versions of Linux
and Unix. Due to the support of LaTeX-formatted text objects,
jfig and xfig are often used to create diagrams for LaTeX and
While the user interface allows for very fast editing, its mode-oriented
concept differs from most simple drawing programs for Windows
or the Macintosh, and might require some practice to get used
Of course, jfig provides less features and effects than state-of-the-art
drawing programs like Corel Draw or Illustrator, but the set
of object types, object attributes, and editing commands should
be sufficient for many types of drawings. Please check the gallery page
for some typical figures. Most functions of xfig 3.2.3 are also
implemented in jfig, but a few (e.g. embedded Postscript images)
are still missing. For good performance, at least a Pentium-III
system with 256 MBytes of memory and a recent Java virtual machine
should be used.
Software architecture and main applications
From a software point of view, jfig is not just an editor, but
rather a class library for 2D-graphics editors. It consists of
several Java packages with about 200 Java classes:
- jfig.objects: objects and geometry: rectangle, polyline,
splines, text, etc.
- jfig.java2d: high-quality on-screen rendering for
- jfig.canvas: the drawing canvas, rubberbanding,
- jfig.gui: custom user-interface controls and dialow
- jfig.commands: one class per editor operation (move-object,
create-rectangle, scale-fontsize, etc.)
- jfig.utils: several utility and helper classes
Besides some smaller utililities, jfig includes the following main
applications built from the above class libraries:
- the jfig graphics editor.
- the jfig bean implements a FIG file
viewer as a Swing user-interface control.
- the jfig applet allows you to embed
a figure viewer into web pages.
- the presentation viewer to
create and present slide-shows consisting of multiple figures.
- the MHG utility for plotting
your (2D) data.
However, you can also easily extend the editor or create custom
editors from the jfig class libraries. The customizing
jfig page has more information and also includes some source
code. For a more complex example, visit the webpages of our digital
systems simulation framework Hades, whose schematics-editor is
built on top of jfig:
- Hades digital