2017-02-19 43 views
1

我使用JGraphX绘制图形,使用mxCircleLayout作为基本表示,但我想更改某些行为。例如,我想EDGESTYLE_TOPTOBOTTOM,所以之前建立mxGraphComponent我定义了一个新的边缘样式:Jgraphx样式适用于circleLayout

' 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风格。 First draw 然后,如果我画一个新的边缘,或者我改变了现有的边缘,边缘就是用TOPTOBOTTON风格绘制的。

Modified edge take the TOPTOBOTTOMSTYLE

我不明白为什么得出的初始是没有TOPTOBOTTOM风格和修改的边缘,用新的方式进行的。

回答

0

该布局默认禁用边线样式。将disableEdgeStyle成员设置为false。

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