yFiles for Java Product Types

yFiles for Java 3.x is available in three different distributions. Each distribution represents a combination of yFiles for Java 3.x components.

Distribution Types

Layout Distribution

The Layout distribution contains only the yFiles for Java 3.x Algorithms component.

Viewer Distribution

The Viewer distribution contains only the yFiles for Java 3.x Viewer component.

Complete Distribution

The Complete distribution contains both the yFiles for Java 3.x Algorithms component and the yFiles for Java 3.x Viewer component.

In addition, this distribution contains adapter classes that facilitate the usage of yFiles graph layout algorithms from the Viewer library.

Distribution Features

The following table provides an overview of the features of the yFiles for Java distributions.

  yFiles for Java Distribution
Algorithms Componentefficient algorithms-oriented graph structure implementation 
wide variety of graph and network algorithms 
algorithms for automatic layout of graphs and diagrams 
algorithms for automatic layout of connections in diagrams 
automatic label placement 
Viewer Componentefficient graph structure implementation with support for the visual representation of graph elements 
powerful graph viewer component for the presentation and creation/editing of diagrams 
extensive user interaction support 
support for nested graph structures 
support for diverse input/output file formats for diagrams and export-only image file formats 
printing support, incl. poster printing 
animations and layout morphing 

yFiles for Java Building Blocks

There are currently two different yFiles for Java components, which can be combined as three different yFiles for Java distributions (see above).


yFiles for Java 3.x Algorithms contains efficient algorithms and data structures for graph analysis tasks as well as state-of-the-art graph layout algorithms.


yFiles for Java Algorithms provides essential classes and data types for graph analysis tasks. These include highly efficient implementations of advanced data types such as Graph and Priority Queue. Furthermore, the algorithms library contains a wide variety of graph and network algorithms which in turn form an indispensable toolkit for a range of network analysis tasks.


The algorithms library offers a perfect suite of graph layout algorithms which deliver you unrivaled opportunities. Diverse layout styles including hierarchic, orthogonal, or circular are provided as easy to integrate components that can be configured programmatically to suit most layout demands. In addition, yFiles for Java Algorithms provides edge routing algorithms that make it possible to easily route edges into existing diagrams. The different layout styles also now include several incremental algorithms, for example incremental hierarchical layout.


The yFiles for Java Viewer component provides powerful Java Swing controls for displaying graphs, and makes available excellent graph interaction capabilities with the controls, convenient printing capabilities, and export to a variety of output formats.


The controls can display arbitrary graphical objects based on a graphics engine tailored to support both flexible customization and high performance rendering of complex graphics.


yFiles for Java makes it easy to add custom editing functionality to your Java Swing application. The library offers full clipboard and Undo/Redo support.


The graphics displayed in the yFiles for Java graph control can be exported to a variety of bitmap based image formats.

yFiles for Java uses the XML based GraphML format as its native exchange file format for graph structure and layout information.

With yFiles for Java, high quality printing support can be easily integrated into your application.