# Examples

All examples require JDK 1.4.x or better; ensure you have a recent Java plugin installed.
Note: If you have installed a new JRE version over an old one, make sure you update your plug-in settings so that your browser uses the correct JRE. In Windows XP/NT/2k/9x, go to Start→Control Panel→Java Plug-in→Advanced and choose the latest version of the JRE from the drop-down list.

`PluggableRenderer` Demo
This example shows off many of the capabilities of `PluggableRenderer`, a renderer implementation that is designed to allow the programmer to change a number of different properties of the rendering of vertices and edges. The source code (in `samples.graph`) is also intended to serve as an example of different ways to program using `PluggableRenderer`.
Clustering Demo Applet
This example demonstrates the ability to perform clustering on graphs, interactively in JUNG. The data set being used here is the Zachary karate club data set, the clustering algorithm being used is Mark Newman's edge betweenness clustering algorithm, and the layout algorithm is Fruchterman-Reingold.
Bipartite Graph Applet This page demonstrates JUNG's ability to create bipartite graphs, to fold them into single-mode graphs, and to interactively visualize user changes to the data. It uses Davis, Gardner, and Garder's dataset from their 1941 Deep South (as reprinted in Freeman's 2002 paper, figure 1).
Shortest Path Applet This demonstrates the shortest path algorithms in JUNG. When a user selects two vertices, the system chooses one shortest path between those two vertices and colors it. The graph is randomly generated by the EppsteinPowerLawGenerator.
Ranking Demo Applet This demonstrates several ranking algorithms within JUNG. The vertices are laid out with the Fruchterman-Reingold layout. It is possible to filter out vertices with the lower slider (nodes with low betweeness are removed first), and to scale the vertices with the upper slider.
Layout Demo Applet This applet demonstrates a series of different layout algorithms with the same renderers:

KKLayout - The Kamada-Kawai algorithm for node layout
FRLayout - The Fruchterman-Reingold algorithm
SpringLayout - A simple force-directed spring-embedder
ISOMLayout - Meyer's "Self-Organizing Map" layout.
CircleLayout - A simple layout places vertices randomly on a circle

Prefuse Demo Applet This applet tests out the interface to the prefuse visualization libraries.
Add-a-Node Demo Applet This applet shows an example in which nodes are gradually added one-at-a-time to a display.
Crooked Edge Demo Applet This applet previews support for edges that are not straight lines. Note that the clickable region around the edges follows the shape of the crooked line. The data is randomly generated; the layout is a spring embedder.