Я использую JGraphX для рисования графика, используя mxCircleLayout в качестве основного представления, но я хочу изменить некоторое поведение. Например, мне нужен EDGESTYLE_TOPTOBOTTOM, поэтому перед сборкой mxGraphComponent я определяю новый стиль края:
' JGraphXAdapter graphAdapter = новый JGraphXAdapter(this.stradario.getStradario());
graphAdapter.getModel().beginUpdate();
try {
Map<String, Object> edgeStyle = new HashMap<String, Object>();
edgeStyle = graphAdapter.getStylesheet().getDefaultEdgeStyle();
edgeStyle.put(mxConstants.STYLE_EDGE, mxConstants.EDGESTYLE_TOPTOBOTTOM);
mxStylesheet stylesheet = new mxStylesheet();
stylesheet.setDefaultEdgeStyle(edgeStyle);
graphAdapter.setStylesheet(stylesheet);
} finally {
graphAdapter.getModel().endUpdate();
}
mxCircleLayout layout = new mxCircleLayout(graphAdapter);
layout.execute(graphAdapter.getDefaultParent());
mxGraphComponent graphComponent = new mxGraphComponent(graphAdapter);
graphComponent.getViewport().setBackground(Color.white);
' График был нарисован в виде круга, но ребра не в стиле TOPTOBOTTOM. Первое рисование Затем, если я нарисую новое ребро или изменю существующее, край нарисован в стиле TOPTOBOTTON.
Измененное ребро принимает СТИЛЬ ВЕРХНЕГО БИЗНЕСА
Я не понимаю, почему первоначальный нарисован без стиля TOPTOBOTTOM, а измененный край был сделан с новым стилем.