JGraphEd
This web page describes JGraphEd, a Java Graph Editing application and Graph Drawing framework.
JGraphEd was designed to allow users to easily create graphs step by step by adding or removing,
or modifying nodes or edges.
JGraphEd is modular by design and a variety of standalone and interdependent algorithms have been
provided for manipulating or visualizing graphs. JGraphEd was also designed with extensibility in mind,
in order to allow developers to quickly and painlessly add their own algorithms to the included library.
JGraphEd was developed by Jon Harris while studying in the School of Computer Science at Carleton University.
The following links provide some general information about JGraphEd:
Features
Usage Instructions
How to Run/Execute JGraphEd
Source Code
If you wish to contact me, send an e-mail to the following address:

Features
The following document provides a full description of JGraphEd's features and design:
JGraphEd.pdf
JGraphEd provides a variety of features such as:
- Interactive graph creation (nodes, edges [directed, curved])
- File loading abilities
- Multiple graphs can be edited or drawn simultaneously in their own windows
- Unlimited level undo & redo
- Planarity Test and Planar Embedding [O(n) using PQ-Tree]
- Biconnected Component finding & display [O(n) (n nodes, m edges)]
- St Numbering & display [O(n)]
- Make Biconnected planar operation [O(n)]
- Make Maximal planar operation (triangulate) [O(n)]
- Canonical Ordering of a maximal planar graph [O(n)]
- Normal Labeling of a maximal planar graph [O(n)]
- Schnyder Straight Line Grid Embedding (n-2 x n-2 grid) of planar graphs [O(n)]
- Timothy Chan's Binary Straight Line Grid Embedding (n-1 x 2SQRT(2logn)SQRT(2logn) grid) of binary trees [O(n)]
- Minimum Spanning tree display [O(mlogn)]
- Dijkstra Shortest Path display [O(mlogn)]
Several (reusable) data structures were implemented for use with JGraphEd such as:
- The PQ-Tree data structure (Booth and Lueker)
- The extended PQ-Tree data structure with direction nodes (Chiba and Nishizeki)
- A nodeSplitTree data structure for node searching (similar to a KD-Tree)
- Various primitive data structures (Binary Heap, Doubly Linked List, FIFO Queue)
- The Half-Edge data structure (integrated with the Node and Edge objects)
If you wish to see a snapshot of JGraphEd in action, click on the following link:
JGraphEd.gif
Usage Instructions
JGraphEd has an integrated help system which describes how to use most of its features.
To access the help system, click on the Green Question Mark Tool Button
, or choose 'Help' from the 'Help' Menu.
Hovering the mouse over toolbar buttons will also give a short description about what each command does.
If you wish to browse an online version of JGraphEd's help files, click the following link:
help/index.htm
How to Run/Execute JGraphEd
JGraphEd requires Java 1.4 or later to run.
The Java RunTime Environment (JRE) 1.4.1 can be downloaded here:
http://java.sun.com/j2se/1.4.1/download.html
The applet version of JGraphEd does not allow loading or saving of graphs from files.
Click on the following link to run JGraphEd as an applet:
JGraphEd.htm
To run JGraphEd as an application, download and execute the following executable jar file:
JGraphEd.jar
Source Code
The source code for JGraphEd is available here
JGraphEd is released to the public as Open Source software, and the reader is free to modify or extend it in any way.
The only restriction is that they also provide the source code of their modifications to the public.
Last Modified: May 4, 2004
Back To Jon Harris' Portfolio
Back To Jon Harris' Website