yFiles for Java (Swing) Diagramming made simple
yFiles for Java (Swing) is an extensive Java™ class library for the Java Swing world. The current 4.x line requires Java 8, was tested with Java 25, and uses a modern API that contains UI controls for drawing, viewing, and editing diagrams — as well as our many advanced graph layout algorithms for automatically arranging complex graphs.
Build intuitive, flowing diagrams with Java (Swing)
The yFiles diagramming library enables seamless visualization of complex networks and relationships, making it easy to start new projects or enhance existing ones. With expert support from core developers, any challenges can be resolved efficiently, ensuring a smooth and successful experience.
Begin transforming complex networks and dynamic relationships into clear, impactful diagrams today with the organic layout in yFiles.
Technical features
Developer-friendly
Extensive Developer's Guide and API documentation , runtime type-checking, debugging tools, plus code completion and quick API lookup in most IDEs.
100% Swing
Provides a pure Swing component for displaying diagrams. Leverages Java 2D for all visualizations.
Self-contained
Completely self-contained with no dependencies besides Java's core library.
NonNull/Nullable annotations
Integrates well with JVM languages that provide null-safe type systems, for example Kotlin.
Supports Java 8 and newer
Supports Java language features including lambda expressions, default methods, streams, generics, and more, and was tested with Java 21 and 25.
yFiles in action
Further information
Technical requirements
Building applications based on yFiles for Java (Swing) requires the Java SE Development
Kit 8 or newer. Running the demo applications requires JRE 21 or newer.
If you need to support Java 7 and earlier, we recommend the 2.x line of yFiles for Java.
yFiles for Java (Classic)
For projects that need to support legacy Java versions before Java 8, the 2.x line of yFiles for Java
supports Java 7 and earlier. It uses an older API design and provides fewer features out-of-the-box
than the 4.x line.
In new Java Swing projects, we recommend starting development with the 4.x line of
yFiles for Java (Swing).