(следующий ответ предполагает Jung2; я не знаком с pre-Jung2).
Одной из сильных сторон Юнга является то, что он очень расширяемый и легко расширяемый. Jung позволяет вам подключать различные преобразователи (простые свойства рендеринга), средства рендеринга (более сложный рендеринг) и т. Д., Чтобы настроить поведение, когда значение по умолчанию не совсем правильно. Обычно они устанавливаются в RenderContext (который вы можете получить из вашего VisualizationViewer).
С другой стороны, его недостатками являются сложность и отсутствие достойной документации. Если вы собираетесь выполнить какую-либо настройку от умеренной до тяжелой, вам нужно покопаться в источнике Юнга.
Например, рендеринг меток вершин можно настроить, подключив новый рендерер меток вершин (интерфейс Renderer.VertexLabel). Например, вы можете создать экземпляр BasicVertexLabelRenderer и указать другую позицию (север, запад, центр и т. Д.). Вы можете поместить свою метку в центр, если вы хотите изменить форму на нечто большее, чем этот круг (для этого установите свой собственный преобразователь формы вершины - экземпляр Transformer). Кроме того, вы можете создать свою собственную реализацию этого интерфейса, которая отображает фон под текстом метки.
Вы также можете установить собственную модифицированную версию Renderer.EdgeLabel (см. Jung's BasicEdgeLabelRenderer), чтобы настроить расположение метки края.