2016-10-22 59 views
1

我实现了一些图算法,我想显示它们的绘制。我用Jung 2.0在java jung中添加节点名称

我想给一个节点添加一个名字。我管理如何写入边缘,但我也想显示节点的名称。

这里是我的代码:

Graph<Integer, String> graph3 = new DelegateForest<Integer, String>(); 

     graph3.addVertex(1); 
     graph3.addVertex(2); 
     graph3.addVertex(3); 

     graph3.addEdge("RAD-A", 1, 2); 
     graph3.addEdge("RAD-B", 1, 3); 

     Layout<Integer, String> layout3 = new TreeLayout<Integer, String>((Forest<Integer, String>) graph3); 
     VisualizationViewer<Integer, String> vv3 = new VisualizationViewer<Integer,String>(layout3); 

     Transformer<String, String> transformer3 = new Transformer<String, String>() { 

      @Override 
      public String transform(String arg0){ 
       return arg0; 
      } 
     }; 

     vv3.getRenderContext().setEdgeLabelTransformer(transformer3); 

     transformer3 = new Transformer<String, String>() { 
      @Override 
      public String transform(String arg0){ 
       return arg0; 
      } 
     }; 

     final DefaultModalGraphMouse<String,Number> graphMouse3 = new DefaultModalGraphMouse<String,Number>(); 
     vv3.setGraphMouse(graphMouse3); 
     graphMouse3.setMode(ModalGraphMouse.Mode.PICKING); 


     JFrame frame3 = new JFrame("Pas 3"); 
     frame3.getContentPane().add(vv3); 
     frame3.pack(); 
     frame3.setSize(350, 300); 
     frame3.setVisible(true); 
+0

你几乎在那里!与edgeLabel相同...你需要做vertexLAbel ... :) –

回答

2

你几乎没有......你需要做的和你一样,边缘没有...

你不喜欢的东西的边缘:

vv3.getRenderContext().setEdgeLabelTransformer(transformer3); 

的节点是一样的...你需要setVertexLabelTransformer

这部分添加到您的代码..

Transformer<Integer, String> transformer = new Transformer<Integer, String>() { 

    @Override 
    public String transform(Integer arg0) { 
    return arg0.toString(); 
    } 

}; 
vv3.getRenderContext().setVertexLabelTransformer(transformer); 

编辑:

你需要的通用映射适应,以保持整数,字符串...

在ESD你会得到像东西

enter image description here

+0

我试过你说的但它不起作用,我在setVertexLabelTransformer出错,我尝试了其他人建议的修复,我得到了相同的结果。 –

+0

yeap ...我看到,你需要使用Trasnformer整数,字符串,而不是字符串字符串,因为我写了... –

+0

现在我试了一下,工作正常...我更新了答案,并添加了屏幕截图 –