用JGraphX移动细胞

时间:2013-04-12 08:01:13

标签: java graph jgraph

我正在使用jgraphx 1.12.0.2,我正在尝试从代码中重新排列图形的顶点。代码看起来像这样:

Object[] roots = graph.getChildCells(graph.getDefaultParent(), true, false);
graph.getModel().beginUpdate();
for (int i = 0; i < roots.length; i++) {
    Object[] root = {roots[i]};
    graph.moveCells(root, i * 10 + 5, 50);
    /* these two lines were added because I thought they might help with the problem */
    /* with or without them, the result is the same */
    graph.getView().clear(root, true, true);
    graph.getView().validate();
 }
 graph.refresh();
 graph.getModel().endUpdate();

问题当然是细胞不会移动到指示的位置。可能是什么问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

您不需要刷新,清除或验证。如果您选择了正确的操作,一切都已为您完成。值得完全阅读section 2 of the User Manual,它解释了核心模型API方法。

在这种情况下,您希望在model.setGeometry()内执行begin/end update。但是请确保不使用从getGeometry获取的几何对象,必须使用新对象或getter中对象的克隆。就地更改模型对象会破坏撤消模型。