0

我对 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());
4

1 回答 1

1

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

edgeName : your edge name

vv.getRenderContext().setEdgeLabelRenderer(new Transformer<String, String>()  {
    @Override
    public String transform(String edgeName) {
       String label;                
       //map your label to your edgeName
       return label;
    }
});

等等顶点

于 2013-07-03T14:32:42.257 回答