JUNG - Кромки со значками

Я использую JUNG для отображения сетевых устройств в виде графиков. Каждое ребро является связующим звеном между двумя элементами сети. Я хочу добавить картинку ровно посередине ссылки. В настоящее время моя ссылка выглядит так: введите здесь описание изображения

Код для него:

vv.getRenderContext().setEdgeLabelTransformer(new Function<GraphLink,String>() {
            URL url = getClass().getResource("/icons/model/conn.radio.png");
            public String apply(GraphLink input) {
                return "<html><img src="+url+" height=14 width=14>";
            }});

Как видите, значок находится рядом со ссылкой. Есть ли вариант, чтобы ссылка могла разделить значок на две равные части?


person Dragos Velcea    schedule 24.11.2016    source источник


Ответы (1)


tl;dr Вы хотите настроить смещение метки края.

Положение метки ребра определяется парой свойств, оба доступны через RenderContext:

  • EdgeLabelClosenessTransformer, который должен возвращать значение в диапазоне [0, 1], указывает положение метки вдоль края, то есть, должна ли она быть ближе к исходному узлу (0) или целевому узлу (1).
  • Смещение метки края, которое должно возвращать расстояние от края до его метки.

Вы можете увидеть, как эти свойства используются (по умолчанию) в BasicEdgeLabelRenderer.

По умолчанию смещение метки края установлено на 10, что должно сделать метку края довольно близко к краю, но не поверх него. Если вы установите его на 0:

vv.getRenderContext().setLabelOffset(0);

Тогда это должно делать то, что вы хотите.

Возможно, вам будет полезно поэкспериментировать с EdgeLabelDemo.

person Joshua O'Madadhain    schedule 29.11.2016