0

我正在使用 jGraphx 开发一个应用程序,我想知道如何避免在彼此之间创建边缘。

当我在 2 个 vetexes 之间添加 2 个边缘时,这 2 个边缘在其他边​​缘之上。

提前致谢。

编辑:这就是我得到的,它们是带有标签的 2 条边:“dist = 1”和“dist = 4”彼此上方。

在此处输入图像描述

4

2 回答 2

1

它可以很容易地完成:

    new mxCircleLayout(graph).execute(graph.getDefaultParent());
    new mxParallelEdgeLayout(graph).execute(graph.getDefaultParent());
于 2017-10-04T20:55:28.917 回答
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();
于 2015-03-09T12:27:17.710 回答