我使用JGraphT创建图表,我希望能够对其进行可视化和操作。有一些例子展示了如何可视化图形,但它似乎涉及相当多的手动代码来布局顶点等。 我想知道是否有任何图形布局算法可以通过一个小例子在JGraph中自动化这个过程。主要是我绘制的图表是有向无环图。 我已经通过将图形导出为.dot格式并使用dot显示它来绘制图形,但我现在需要一些交互。
答案 0 :(得分:2)
由于JGraph现在似乎是mxGraph,但JGraphT嵌入了JGraph 5.13,它并不那么容易,但我发现this doc 并且以下代码正在运行:
// 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);