Jung Graph 시각화의 정점 레이블
-
17-09-2020 - |
문제
작은 그래프 시각화 클래스를 썼습니다.
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());
.
이것은 샘플에서 꽤 자주 발견 할 것입니다.Vertex 클래스의 toString () 메서드를 사용하여 레이블을 지정합니다.
약간 더 많은 관련 예 :
vv.getRenderContext().setEdgeLabelTransformer(new Transformer<MyEdge, String>() {
public String transform(MyEdge e) {
return (e.toString() + " " + e.getWeight() + "/" + e.getCapacity());
}
});
.
가장자리를 반복 할 필요가 없습니다.EdGelabelTransFormer 또는 VertExlabelTransFormer는 가장자리에 LASE LABER에 레이블이 지정되고 속성이 업데이트 될 때 VisualizationViewer가 플라이에서 업데이트됩니다.
제휴하지 않습니다 StackOverflow