Java 在图中插入顶点

Java 在图中插入顶点,java,vertex,jgraphx,Java,Vertex,Jgraphx,我想在现有图形中添加一个新顶点。 因此,我创建了一个新单元,并尝试重新连接我的边,但我的图形没有更新(对于边) 这是我的代码: mxGraph graph = editor.getGraph(); mxCell selectedElt = (mxCell) graph.getSelectionCell(); Object cells[] = { selectedElt }; if (selectedElt.isEdge()) { // cell is an edge, so

我想在现有图形中添加一个新顶点。 因此,我创建了一个新单元,并尝试重新连接我的边,但我的图形没有更新(对于边)

这是我的代码:

    mxGraph graph = editor.getGraph();

mxCell selectedElt = (mxCell) graph.getSelectionCell();
Object cells[] = { selectedElt };

if (selectedElt.isEdge()) {
    // cell is an edge, so we have source and target
    System.out.println("Source : " + selectedElt.getSource().getId());
    System.out.println("Target : " + selectedElt.getTarget().getId());
} else {
    // edge before
    mxCell beforeEdge = (mxCell) selectedElt.getEdgeAt(0);
    // edge after
    mxCell afterEdge = (mxCell) selectedElt.getEdgeAt(1);
    // moving down the selected cell
    graph.moveCells(cells, 0, 50);

    // create a new vertex
    GraphStyle graphStyle = new GraphStyle(graph);
    mxCell cell = new mxCell("AAM",
            new mxGeometry(selectedElt.getGeometry().getX(), selectedElt.getGeometry().getY(), 80, 50),
            graphStyle.getCalculatorStyleName());
    cell.setVertex(true);

    beforeEdge.setTarget(cell);
    graph.insertEdge(graph.getDefaultParent(), "e33", "", cell, selectedElt);

    graph.addCell(cell);
    graph.repaint();
}

不要调用
beforeEdge.setTarget(cell)
尝试
cell.insertEdge(beforeEdge,false)
。这将从上一个顶点删除边,并将其添加到新顶点

顺便说一句,我建议将代码包装成try finally块,如下所示:

graph.getModel().beginUpdate();
try {
    // do all the graph related stuff
}
finally {
    graph.getModel().endUpdate();
}

不要调用
beforeEdge.setTarget(cell)
尝试
cell.insertEdge(beforeEdge,false)
。这将从上一个顶点删除边,并将其添加到新顶点

顺便说一句,我建议将代码包装成try finally块,如下所示:

graph.getModel().beginUpdate();
try {
    // do all the graph related stuff
}
finally {
    graph.getModel().endUpdate();
}

它已经是wrapp了,但我只展示了代码中不起作用的部分;)。但这是工作!!所以,谢谢你:DIt已经是wrapp了,但我只展示了代码中不起作用的部分;)。但这是工作!!所以谢谢你:D