gpt4 book ai didi

java - JUNG 图可视化中的顶点标签

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:07:42 24 4
gpt4 key购买 nike

我写了一个小图形可视化类:

    public void simpleGraph(SparseMultigraph<Vertex,SEdge> graph, String name) {

Layout<Vertex, SEdge> layout = new ISOMLayout(graph);
layout.setSize(new Dimension(800,800));
BasicVisualizationServer<Vertex, SEdge> vv = new BasicVisualizationServer<Vertex, SEdge>(layout);
vv.setPreferredSize(new Dimension(850,850)); //Sets the viewing area size

JFrame frame = new JFrame(name);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(vv);
frame.pack();
frame.setVisible(true);
}

如何为顶点和边添加标签?值存储在我的自定义顶点类中。我可以遍历 Layout 或 BasicVisualizationServer 中的所有顶点并添加标签吗?

感谢您的帮助!

最佳答案

你需要为你的顶点/边调用标签转换器:

        vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());

这是您在示例中经常会发现的内容。它使用顶点类的 toString() 方法来指定标签。

一个稍微复杂一点的例子:

        vv.getRenderContext().setEdgeLabelTransformer(new Transformer<MyEdge, String>() {
public String transform(MyEdge e) {
return (e.toString() + " " + e.getWeight() + "/" + e.getCapacity());
}
});

您不需要遍历边缘; EdgeLabelTransformer 或 VertexLabelTransformer 将在更新属性时标记您的边,而 VisualizationViewer 将动态更新它们。

关于java - JUNG 图可视化中的顶点标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3288886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com