2015-09-16 55 views
1

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

回答

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);