1
我正在使用JGraphT來創建一個圖形,我希望能夠可視化和操縱它。有一些示例展示瞭如何將圖形可視化,但似乎它涉及到很多手動代碼來佈置頂點等。 我想知道是否有任何圖形佈局算法可以在JGraph中自動執行此過程有一個小例子。大多數我正在繪製的圖是有向無環圖。 我已經通過將它們導出爲.dot格式並使用dot來顯示它,但我現在需要一點互動。JGraphT的圖形佈局算法
我正在使用JGraphT來創建一個圖形,我希望能夠可視化和操縱它。有一些示例展示瞭如何將圖形可視化,但似乎它涉及到很多手動代碼來佈置頂點等。 我想知道是否有任何圖形佈局算法可以在JGraph中自動執行此過程有一個小例子。大多數我正在繪製的圖是有向無環圖。 我已經通過將它們導出爲.dot格式並使用dot來顯示它,但我現在需要一點互動。JGraphT的圖形佈局算法
由於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);