2016-11-24 8 views
0

私はネットワークデバイスをグラフとして表示するためにJUNGを使用しています。各エッジは、2つのネットワーク要素間のリンクです。私は正確にリンクの真ん中に画像を追加したい。 は、現在、私のリンクは次のようになります。 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>"; 
      }}); 

アイコンがリンクと隣接している見ることができるように。リンクが2つの等しい部分でアイコンを分割できるようにオプションがありますか?

答えて

0

tl; drエッジラベルのオフセットを微調整する必要があります。

エッジラベルの位置をRenderContextを介してアクセス可能両方、特性のカップルによって指定される:範囲内の値を返す必要が

  • EdgeLabelClosenessTransformer、[0、1]、位置を特定しますすなわち、ソースノード(0)またはターゲットノード(1)に近いかどうかを判断する。
  • エッジラベルからエッジまでの距離を返すエッジラベルオフセット。

BasicEdgeLabelRendererでは、これらのプロパティが(デフォルトで)どのように使用されているかを確認できます。

デフォルトでは、エッジラベルのオフセットは10に設定されているため、エッジラベルはエッジにかなり近く、エッジの上には表示されません。あなたは0に設定した場合:

vv.getRenderContext().setLabelOffset(0);

その後、それはあなたが欲しいものを行う必要があります。

EdgeLabelDemoで試してみると便利でしょう。

+0

ありがとう、それはsetLabelOffset(15)で機能しました。 –

関連する問題