A library for creating and editing graph-like diagrams in JavaFX.
This project is a fork of tesis-dynaware/graph-editor 1.3.1, which is no longer being maintained.
- Highly customizable
- Add your own custom skins or restyle existing ones via CSS
- Graphical effects where connections intersect:
- Full undo / redo functionality via EMF commands
- Selection API with cut, copy, paste
- Alignment (optionally with snap-to-grid)
- Editing of large graphs via a panning mechanism & minimap
- Localizable texts (currently those read by screen readers), see the wiki
- Additional skin examples provided:
Example of a fully customized implementation:
| Gesture | Action |
|---|---|
| Middle-drag | Pan the view |
SPACE + primary-drag |
Pan the view |
| Primary-drag on empty canvas | Rubber-band selection |
| Primary-drag on a node / joint | Move the selection |
| Primary-drag on a node border | Resize the node |
| Primary-drag from a connector | Create a connection |
Ctrl + scroll |
Zoom, anchored at the mouse pointer |
Arrow keys / Page Up / Page Down / Home / End |
Pan with the keyboard |
The secondary (right) mouse button is intentionally left unhandled, so that applications using this library are free to attach their own context menus. Only unmodified navigation keys are consumed, so application shortcuts keep working.
Maven coordinates:
<dependency>
<groupId>io.github.eckig.grapheditor</groupId>
<artifactId>grapheditor-core</artifactId>
<version>25.1.0</version>
</dependency>
Download the latest Release.
Try the tutorials.
Run the sample application after cloning the repository with maven inside the demo module with mvn javafx:run.