1

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

もちろん問題は、セルが指定された位置に移動しないことです。何が問題なのですか?

ありがとう!

4

1 に答える 1

0

更新、クリア、または検証は必要ありません。正しい操作を選択すると、すべてが自動的に行われます。ユーザー マニュアルのセクション 2 を完全に読む価値があります。コア モデルの API メソッドについて説明しています。

この場合、model.setGeometry()内で実行する必要がありますbegin/end update。ただし、getGeometry から取得したジオメトリ オブジェクトを使用しないように注意してください。新しいオブジェクトまたはゲッターからのオブジェクトのクローンを使用する必要があります。モデル オブジェクトをインプレースで変更すると、元に戻すモデルが壊れます。

于 2013-04-29T07:59:03.260 に答える