Алгоритмы построения графиков для JGraphT

Я использую JGraphT для создания графика, и я хочу иметь возможность визуализировать и управлять им. Есть несколько примеров, которые показывают, как визуализировать граф, но кажется, что это требует довольно большого количества ручного кода для компоновки вершин и т. Д. Мне было интересно, есть ли какой-либо алгоритм компоновки графа, который мог бы автоматизировать этот процесс уже в JGraph с помощью небольшой пример. В основном графики, которые я рисую, являются направленными ациклическими графами. Я уже нарисовал графики, экспортировав их в формат .dot и отобразив их с помощью точки, но сейчас мне нужно немного пообщаться.


person remi    schedule 16.09.2015    source источник


Ответы (1)


Поскольку JGraph теперь выглядит как mxGraph, но JGraphT встраивает JGraph 5.13, это не так просто, но я нашел этот документ и следующий фрагмент кода работают:

    // this a a JGraphT graph
    ListenableDirectedGraph<TableColumn, DefaultEdge> dependencyGraph = getDependencyGraph();

    JGraphModelAdapter adapter = new JGraphModelAdapter(dependencyGraph);

    JGraph jgraph = new JGraph(adapter);


    JGraphLayout layout = new JGraphHierarchicalLayout(); // or whatever layouting algorithm
    JGraphFacade facade = new JGraphFacade(jgraph);
    layout.run(facade);
    Map nested = facade.createNestedMap(false, false);
    jgraph.getGraphLayoutCache().edit(nested);

    JScrollPane sp = new JScrollPane(jgraph);
    this.add(sp);
person remi    schedule 16.09.2015