2012-03-10 37 views
3

在我的应用程序中,我想设置不同风格的每个egde。它可以是边缘颜色或边缘厚度。 我已阅读过JUNG的变形金刚,但我没有发现有用的东西。JUNG2 - 如何设置自定义egde颜色/厚变压器

你知道有什么方法将特定颜色或线条粗细设置为特定边缘吗?它可以是某种类型的Transformer或具有诸如setWidth()或setColour()之类的方法的类。例子会很好;)

回答

6

感谢的,这里是工作示例:

private Transformer<String, Paint> edgePaint = new Transformer<String, Paint>() { 
    public Paint transform(String s) { 
     return Color.RED; 
    } 
}; 

private Transformer<String, Stroke> edgeStroke = new Transformer<String, Stroke>() { 
    float dash[] = { 10.0f }; 
    public Stroke transform(String s) { 
     return new BasicStroke(1.0f, BasicStroke.CAP_BUTT, 
       BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f); 
    } 
}; 

(...) 

vv.getRenderContext().setEdgeDrawPaintTransformer(edgePaint); 
vv.getRenderContext().setEdgeStrokeTransformer(edgeStroke); 
2

你想要的类是PluggableRendererContext。有一个示例广泛使用它(PluggableRendererDemo),其源代码位于发行版中,并在JUNG网站上以小程序形式进行演示。