java - 在java jung中添加节点名称

标签 java graph graphics jung jung2

我实现了一些图形算法,我想展示它们的绘制。我用的是Jung 2.0

我想为节点添加名称。我设法如何在边缘书写,但我还想显示节点的名称。

这是我的代码:

Graph<Integer, String> graph3 = new DelegateForest<Integer, String>();

        graph3.addVertex(1);
        graph3.addVertex(2);
        graph3.addVertex(3);

        graph3.addEdge("RAD-A", 1, 2);
        graph3.addEdge("RAD-B", 1, 3);

        Layout<Integer, String> layout3 = new TreeLayout<Integer, String>((Forest<Integer, String>) graph3);
        VisualizationViewer<Integer, String> vv3 = new  VisualizationViewer<Integer,String>(layout3);

        Transformer<String, String> transformer3 = new Transformer<String, String>() {

            @Override 
            public String transform(String arg0){
                return arg0;
            }
        };

        vv3.getRenderContext().setEdgeLabelTransformer(transformer3);

        transformer3 = new Transformer<String, String>() {
            @Override 
            public String transform(String arg0){
                return arg0;
            }
        };

        final DefaultModalGraphMouse<String,Number> graphMouse3 = new DefaultModalGraphMouse<String,Number>();
        vv3.setGraphMouse(graphMouse3);
        graphMouse3.setMode(ModalGraphMouse.Mode.PICKING);


        JFrame frame3 = new JFrame("Pas 3");
        frame3.getContentPane().add(vv3);
        frame3.pack();
        frame3.setSize(350, 300);
        frame3.setVisible(true);

最佳答案

你就快到了...你需要对边缘进行同样的操作...

对于边缘,你做了类似的事情:

 vv3.getRenderContext().setEdgeLabelTransformer(transformer3);

对于节点是相同的...您需要setVertexLabelTransformer

将此段添加到您的代码中..

  Transformer<Integer, String> transformer = new Transformer<Integer, String>() {

    @Override
    public String transform(Integer arg0) {
    return arg0.toString();
    }

};
vv3.getRenderContext().setVertexLabelTransformer(transformer);

编辑:

您需要调整通用映射以保存整数、字符串...

在 esd 你会得到类似的东西

enter image description here

关于java - 在java jung中添加节点名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40194070/

相关文章:

java - 在 Weld 中使用@EJB 作为注入(inject)注解

plot - 多图垂直堆叠在一起,在 gnuplot 中具有相同的 x 轴

javascript - 使用 Canvas 创建极地面积图

Java AWT Window实现不运行paint()函数

c++ - 光线追踪阴影错误

java - 表达式产生错误

java - 一次从所有 arrayList 中获取一个元素

java - Graphics2D 线条和形状绘制问题(渲染在错误的位置)

多个 IntStreams 上的 Java 8 forEach

c++ - 在 ogdf::GraphCopy 中复制一条边