2015-02-27 3 views
0

Я работаю над приложением, использующим jGraphx, и я хочу знать, как избежать создания ребер друг над другом.JGraphx: Как избежать добавления границ друг над другом?

Когда я добавляю 2 ребра между 2 vetexes, на 2 ребра выше eatch другой ..

Заранее спасибо.

EDIT: Это то, что я получаю, это 2 ребра с метками: «dist = 1» и «dist = 4» друг над другом.

enter image description here

+0

Можете ли вы уточнить, что вы имеете в виду под «краями друг над другом»? И вы имеете в виду, что вы добавляете два отдельных ребра между теми же двумя вершинами? – user1618143

+0

Да, два отдельных края между теми же двумя вершинами. Я добавил изображение, показывающее, что я получаю. – user3426711

+0

Ваш график не ошибается. Граф 'визуализация' является некорректным. –

ответ

1

Это можно сделать легко:

new mxCircleLayout(graph).execute(graph.getDefaultParent()); 
    new mxParallelEdgeLayout(graph).execute(graph.getDefaultParent()); 
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();