我正在使用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风格,修改后的边缘是用新风格完成的。
答案 0 :(得分:0)
默认情况下,布局会禁用边缘样式。将disableEdgeStyle成员设置为false。
mxCircleLayout layout = new mxCircleLayout(graphAdapter);
layout.setDisableEdgeStyle(false);
layout.execute(graphAdapter.getDefaultParent());