2011-11-17 214 views
0

我有JUNG和邊緣(頂點)標籤的問題。JUNG獲得邊緣標籤

我的申請是基於JUNG。它需要計算給定圖中的一些值。圖需要被「手動」淹沒,並且在該圖上我需要設置「起始值」。我正在考慮爲該值使用標籤(頂點名稱,邊緣長度)。

現在,我可以繪製圖形,我可以獲取頂點和邊的數量,但是我不知道如何獲取這些標籤和值。

我嘗試使用自定義類的邊和頂點,但比我不知道如何設置標籤。 這是我的代碼的一部分。它來自文檔。有人可以告訴我要更改什麼,這樣我可以在繪製圖形時設置標籤,並在此之後設置回放值?

graph = new SparseMultigraph<Number, Number>(); 

    this.layout = new StaticLayout<Number, Number>(graph, 
      new Dimension(600, 600)); 

    vv = new VisualizationViewer<Number, Number>(layout); 
    vv.setBackground(Color.white); 

    vv.getRenderContext().setVertexLabelTransformer(
      MapTransformer.<Number, String>getInstance(LazyMap.<Number, String>decorate(
      new HashMap<Number, String>(), 
      new ToStringLabeller<Number>()))); 

    vv.getRenderContext().setEdgeLabelTransformer(
      MapTransformer.<Number, String>getInstance(LazyMap.<Number, String>decorate(
      new HashMap<Number, String>(), 
      new ToStringLabeller<Number>()))); 

    vv.setVertexToolTipTransformer(vv.getRenderContext().getVertexLabelTransformer()); 

    Container content = getContentPane(); 
    final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv); 
    content.add(panel); 
    Factory<Number> vertexFactory = new VertexFactory(); 
    Factory<Number> edgeFactory = new EdgeFactory(); 

    final EditingModalGraphMouse<Number, Number> graphMouse = new EditingModalGraphMouse<Number, Number>(
      vv.getRenderContext(), vertexFactory, edgeFactory); 

    vv.setGraphMouse(graphMouse); 
    vv.addKeyListener(graphMouse.getModeKeyListener()); 
+1

如果你想要一個答案,請花更多的時間寫作問題的標題和描述。 – sorin

+0

有很多示例代碼和文檔。你有看過嗎? –

+0

@Joshua:是的,我正在尋找最近5或6天的答案,嘗試了一切......現在,對我來說,似乎無法獲得這些標籤的價值。 – Tom4072911

回答

1

您可以使用此方法在邊緣中設置標籤。
edgeName:你的優勢名字

vv.getRenderContext().setEdgeLabelRenderer(new Transformer() {

 @Override 
     public String transform(String edgeName) { 
      String label;     
      //map your label to your edgeName 
      return label; 
     } 
    }); 

等爲頂點