1

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

4

1 回答 1

2

由于 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);
于 2015-09-16T10:34:06.240 回答