JUNG получить крайний ярлык - PullRequest
0 голосов
/ 17 ноября 2011

У меня проблема с метками JUNG и ребра (вершины).

Мое приложение основано на JUNG. Необходимо рассчитать некоторые значения из данного графика. График должен быть утоплен «вручную», и на этом графике мне нужно установить «начальные значения». Я думал использовать метки для этих значений (имена для вершины, длина для ребер).

Теперь я могу нарисовать график, я могу получить количество вершин и ребер, но я не знаю, как получить эти метки и значения.

Я пытался использовать пользовательские классы для ребер и вершин, но потом вообще не знаю, как устанавливать метки. Это часть моего кода. Это взято из документации. Может кто-нибудь сказать мне, что изменить, чтобы я мог установить метки при рисовании графика и после этого получить значения?

graph = new SparseMultigraph<Number, Number>();

    this.layout = new StaticLayout<Number, Number>(graph,
            new Dimension(600, 600));

    vv = new VisualizationViewer<Number, Number>(layout);
    vv.setBackground(Color.white);

    vv.getRenderContext().setVertexLabelTransformer(
            MapTransformer.<Number, String>getInstance(LazyMap.<Number, String>decorate(
            new HashMap<Number, String>(),
            new ToStringLabeller<Number>())));

    vv.getRenderContext().setEdgeLabelTransformer(
            MapTransformer.<Number, String>getInstance(LazyMap.<Number, String>decorate(
            new HashMap<Number, String>(),
            new ToStringLabeller<Number>())));

    vv.setVertexToolTipTransformer(vv.getRenderContext().getVertexLabelTransformer());

    Container content = getContentPane();
    final GraphZoomScrollPane panel = new GraphZoomScrollPane(vv);
    content.add(panel);
    Factory<Number> vertexFactory = new VertexFactory();
    Factory<Number> edgeFactory = new EdgeFactory();

    final EditingModalGraphMouse<Number, Number> graphMouse = new EditingModalGraphMouse<Number, Number>(
            vv.getRenderContext(), vertexFactory, edgeFactory);

    vv.setGraphMouse(graphMouse);
    vv.addKeyListener(graphMouse.getModeKeyListener());

1 Ответ

1 голос
/ 03 июля 2013

Вы можете использовать этот метод, чтобы установить метки в юнге для краев.
edgeName: имя вашего ребра

vv.getRenderContext().setEdgeLabelRenderer(new Transformer() {</p> <pre><code> @Override public String transform(String edgeName) { String label; //map your label to your edgeName return label; } });

и так для вершины

...