2016-11-24 131 views
0

我使用JUNG将图形显示为网络设备。每条边都是两个网元之间的链接。我想在链接的中间添加一张照片。 目前我的链接如下所示: enter image description hereJUNG - 带图标的边缘

它的代码是:

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>"; 
      }}); 

正如你可以看到图标是与相邻的链接。有没有任何选择,以便链接可以分成两个等份的图标?

回答

0

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

边缘标签的位置由几个属性的指定,既通过RenderContext访问:

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

您可以在BasicEdgeLabelRenderer中看到如何使用这些属性(默认情况下)。

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

vv.getRenderContext().setLabelOffset(0);

那么就应该做你想做的。

您可能会发现用EdgeLabelDemo进行实验很有用。

+0

谢谢,它与setLabelOffset(15)一起工作。 –