Uni-HH / CS. / TAMS / Java / jfig
spacer jfig
spacer News
spacer Gallery

spacer Editor
spacer Custom editors
spacer Viewer / Bean
spacer Applet
spacer Presentations
spacer Plotting

spacer Webstart
spacer Download
spacer Documentation

Welcome on the homepage of jfig, 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. A short history of the jfig development is included at the bottom of the News page.

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 pdflatex documents. For the current status and frequently asked questions about jfig, see the FAQ.


Click on the thumbnails below to see a few screenshots of the jfig editor, running on Linux, Windows XP, and Mac OS X. You can also change the appearance via the Java 'look-and-feel' mechanism:

annotated jfig editor screenshot jfig editor screenshot (Linux) jfig editor screenshot (Linux GTK) jfig editor screenshot (Windows XP) jfig editor screenshot (Mac OS X)

Key points of the xfig (and jfig) user interface are the clever use of a three-button mouse, bindkeys for fast command selection, a magnetic grid for object placement, easy attribute updates, and compound objects.

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 to.

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 the objects
  • jfig.canvas: the drawing canvas, rubberbanding, buffering
  • jfig.gui: custom user-interface controls and dialow windows
  • 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: 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 systems simulator.

Further information

Please select one of the links in the menu on the left for further information, or use one of the following links:

  29.01.2006   Impressum