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