문제

작은 그래프 시각화 클래스를 썼습니다.

    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가 플라이에서 업데이트됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top