JUNG Tree Layout动态更新

时间:2013-06-22 19:48:23

标签: tree jung graph-layout

我在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();

这会将树更新为它应该是什么,但树的布局会丢失。

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

1 个答案:

答案 0 :(得分:1)

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

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