2

我正在按如下方式进行顶点插入:

String id = "1";
String value = "One";
Object v = graph.insertVertex(parent, id, value, 30, 30, 0, 0);

所以我需要通过 id 来获取这个顶点......

Object[] cells = graph.getChildVertices(graph.getDefaultParent());
for (Object c : cells)
{
    mxCell cell = (mxCell) c;
    System.out.println("id: " + cell.getId() + ", value: " + cell.getValue());
}
//result:
//id: 2, value: One

为什么id变了?我怎样才能正确获得顶点?

4

2 回答 2

3

试试mxGraphModel.getCell(String id)

于 2015-09-19T12:46:32.957 回答
0

当您创建没有特定 mxGraphModel 的新 mxGraph 时,模型会自动创建两个节点。
“根”节点使用 id =“0”,另一个节点作为 id =“1”的根节点的子节点。这个节点就是你在使用graph.getDefaultParent()时通常得到的节点。
因此,当您尝试使用 id = "1" 插入节点时,模型已经包含具有给定 id 的节点,因此它会创建一个新 id 并插入该节点。尝试不同的 id,它应该可以正常工作。

于 2015-10-22T10:42:16.413 回答