0

我正在使用 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>";
            }});

如您所见,该图标与链接相邻。是否有任何选项可以使链接将图标分成两个相等的部分?

4

1 回答 1

0

tl; dr您想要调整边缘标签偏移量。

边缘标签的位置由几个属性指定,这两个属性都可以通过RenderContext访问:

  • EdgeLabelClosenessTransformer 应该返回 [0, 1] 范围内的值,指定标签沿边的位置,即它应该更靠近源节点 (0) 还是目标节点 (1)。
  • 边缘标签偏移量,它应该返回从边缘到其标签的距离。

您可以在BasicEdgeLabelRenderer中查看这些属性的使用方式(默认情况下)。

默认情况下,边缘标签偏移设置为 10,这应该使边缘标签非常接近边缘,但不在边缘之上。如果将其设置为 0:

vv.getRenderContext().setLabelOffset(0);

那么这应该做你想要的。

您可能会发现尝试使用EdgeLabelDemo很有用。

于 2016-11-29T19:02:57.400 回答