我在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();
这会将树更新为它应该是什么,但树的布局会丢失。
大多数节点确实出现在正确的位置,但叶节点出现在随机位置。是否有可能获得第一次创建图形时获得的树结构?
答案 0 :(得分:1)
您需要使用更新的图形创建新的TreeLayout实例,并使用新的TreeLayout实例更新可视化。您在随机位置获取新节点,因为您拥有的TreeLayout实例尚未为它们计算位置。
对于某些类型的图表更新(仅限添加),这可以更有效。但是现在我们的名单上并不高。