Jgraphx样式应用于circleLayout

时间:2017-02-19 19:10:06

标签: java jgraphx

我正在使用JGraphX绘制图形,使用mxCircleLayout作为基本表示,但我想改变一些行为。例如,我想要EDGESTYLE_TOPTOBOTTOM,所以在构建mxGraphComponent之前我定义了一个新的边缘样式:

”     JGraphXAdapter graphAdapter = new 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样式。 First draw 然后,如果我绘制新边,或者我更改现有边,则使用TOPTOBOTTON样式绘制边。

Modified edge take the TOPTOBOTTOMSTYLE

我不明白为什么初始绘制没有TOPTOBOTTOM风格,修改后的边缘是用新风格完成的。

1 个答案:

答案 0 :(得分:0)

默认情况下,布局会禁用边缘样式。将disableEdgeStyle成员设置为false。

mxCircleLayout layout = new mxCircleLayout(graphAdapter);
layout.setDisableEdgeStyle(false);
layout.execute(graphAdapter.getDefaultParent());