JGraphx:如何避免相互增加边缘?

时间:2015-02-27 18:16:33

标签: edges jgraphx

我正在使用jGraphx处理应用程序,我想知道如何避免相互创建边缘。

当我在2个vetex之间添加2条边时,2条边是在其他边上方。

提前致谢。

编辑:这就是我得到的,那些是带有标签的2条边:" dist = 1"和" dist = 4"彼此相对。

enter image description here

2 个答案:

答案 0 :(得分:1)

可以轻松完成:

    new mxCircleLayout(graph).execute(graph.getDefaultParent());
    new mxParallelEdgeLayout(graph).execute(graph.getDefaultParent());

答案 1 :(得分:0)

如果没有看到任何源代码,很难提供具体的细节,但一般来说,您需要做的是获取图形的样式表,然后修改边缘相关参数。一个例子是:

    mxGraph mxgraph = new mxGraph();
    Object parent = mxgraph.getDefaultParent();
    mxgraph.getModel().beginUpdate();
    mxStylesheet stylesheet = mxgraph.getStylesheet();
    Hashtable<String, Object> style = new Hashtable<>();
    stylesheet.putCellStyle("ROUNDED", style);

    Map<String, Object> vertexStyle = stylesheet.getDefaultVertexStyle();
    vertexStyle.put(mxConstants.STYLE_FILLCOLOR, "#FFFFFF");
    vertexStyle.put(mxConstants.STYLE_STROKECOLOR, "#000000");
    vertexStyle.put(mxConstants.STYLE_AUTOSIZE, 1);
    vertexStyle.put(mxConstants.STYLE_SPACING, "10");
    vertexStyle.put(mxConstants.STYLE_ORTHOGONAL, "true");
    vertexStyle.put(mxConstants.STYLE_SHAPE, mxConstants.SHAPE_ELLIPSE);

    Map<String, Object> edgeStyle = stylesheet.getDefaultEdgeStyle();
    edgeStyle.put(mxConstants.STYLE_EDGE, mxConstants.EDGESTYLE_ORTHOGONAL);
    edgeStyle.put(mxConstants.STYLE_SHAPE, mxConstants.SHAPE_CURVE);
    edgeStyle.put(mxConstants.STYLE_ENDARROW, mxConstants.ARROW_CLASSIC);

    ...set up your edges and vertices here, where the last parameter is "ROUNDED" (the name of the stylesheet)

    mxgraph.getModel().endUpdate();