2010-01-25 111 views
1

我在使用JUNG时遇到了问题。我想绘制一个网络图,其中顶点将具有不同的形状和颜色,边线将以不同的颜色虚线或全线。如何使用JUNG对顶点和边缘进行着色和形状

由于我是Java新手,我无法了解jung的实际架构。当我使用setVertexFillPaintTransformer时,它使用相同的颜色为所有顶点着色。顶点存储在一个整数数组中。现在我已经过去了一个礼拜了。 PLZ如果有人可以帮助我,或有一定的反问题,不要问我

回答

3

的方法setVertexFillPaintTransformer发生在一个顶点转换成彩色的变压器。所以为了让不同的顶点具有不同的颜色,你需要让它检查顶点。该方法中的参数,公共油漆变换(整数i)为顶点,这样可以提供一个基于顶点颜色(或)。例如,如果我有一个图,其中的顶点分别为一个整数,我可以循环通过提供以下变压器分配三种不同的颜色,以顶点至setVertexFillPaintTransformer

Transformer<Integer, Paint> vertexPaint = new Transformer<Integer, Paint>() { 
    private final Color[] palette = {Color.GREEN, Color.BLUE, Color.RED}; 

    public Paint transform(Integer i) { 
     return palette[i.intValue() % palette.length]; 
    } 
};