我正在使用jGraphx处理应用程序,我想知道如何避免相互创建边缘。
当我在2个vetex之间添加2条边时,2条边是在其他边上方。
提前致谢。
编辑:这就是我得到的,那些是带有标签的2条边:" dist = 1"和" dist = 4"彼此相对。
答案 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();