JUNG得到了边缘标签

时间:2011-11-17 18:05:17

标签: java label jung edge

我对JUNG和edge(顶点)标签有问题。

我的申请是基于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 个答案:

答案 0 :(得分:1)

您可以使用此方法在jung中为边缘设置标签。
边缘名称:您的边缘名称

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

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

@Override public String transform(String edgeName) { String label; //map your label to your edgeName return label; } }); 所以对于顶点