2

我正在使用 JUNG 中的 TreeLayout 作为我的图表。用户能够对图表进行更改,然后它应该更新并显示更改。

为了启用更新,我再次创建图表并使用它设置布局:

graph = new DelegateForest<String, Integer>(
          new DirectedOrderedSparseMultigraph<String, Integer>());
createGraph()    //adds the vertices and edges to the graph
layout.setGraph(graph);
vv.repaint();

这确实将树更新为应有的状态,但树布局丢失了。

大多数节点确实出现在正确的位置,但叶节点出现在随机位置。是否可以恢复第一次创建图形时获得的树结构?

4

1 回答 1

1

您需要使用更新的图形创建一个新的 TreeLayout 实例,并使用新的 TreeLayout 实例更新可视化。您在随机位置获取新节点,因为您拥有的 TreeLayout 实例尚未为它们计算位置。

对于某些类型的图形更新(仅限添加),这可以提高效率。但它现在在我们的名单上并不高。

于 2013-07-17T06:04:41.577 回答