(The following answer suggests Jung2, I am not familiar with pre-Jung2).
One of Jung’s strengths is that it is very extensible and easy to expand. Jung allows you to connect various transformers (simple rendering properties), visualization tools (more complex rendering), etc., to customize the behavior when the default is not entirely correct. They are usually set to a RenderContext (which you can get from your VisualizationViewer).
On the other hand, its drawbacks are its complexity and lack of decent documentation. If you are going to make any moderate or heavy tuning, you need to delve into Jung's source.
For example, the rendering of vertex labels can be configured by connecting a new vertex label visualizer (Renderer.VertexLabel interface). For example, you can create an instance of BasicVertexLabelRenderer and specify a different position (north, west, center, etc.). You can put your label in the center if you want to change the shape to something more than this circle (for this, install your own vertex shape transformer - an instance of Transformer). Alternatively, you can create your own implementation of this interface, which creates a background under the label text.
You can also set your own modified version of Renderer.EdgeLabel (see Jung BasicEdgeLabelRenderer) to adjust the position of the edge label.
Jimn
source share