JGraphT的图表布局算法

时间:2015-09-16 08:47:40

标签: jgrapht graph-drawing jgraph

我使用JGraphT创建图表,我希望能够对其进行可视化和操作。有一些例子展示了如何可视化图形,但它似乎涉及相当多的手动代码来布局顶点等。 我想知道是否有任何图形布局算法可以通过一个小例子在JGraph中自动化这个过程。主要是我绘制的图表是有向无环图。 我已经通过将图形导出为.dot格式并使用dot显示它来绘制图形,但我现在需要一些交互。

1 个答案:

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