[英]Vertex label in JUNG graph visualization
我写了一个小图形可视化类:
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);
}
如何为顶点和边添加标签? 值存储在我的自定义顶点类中。 我可以迭代布局或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将动态更新它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.