2014-01-17 66 views
1

我正在嘗試更改頂點的顏色,但其中一些需要3種不同的顏色,有人知道該怎麼做? 我在做這樣的:如何在JUNG中更改特定頂點的顏色

Transformer<V, Paint> vertexPaintRed = new Transformer<V, Paint>() { 
    public Paint transform(V input) { 
     return Color.red; 
    } 
}; 

但隨着它我就可以改變所有頂點的顏色。我想改變其中一些顏色,那些只有邊緣出來我需要一種顏色,其他有邊緣剛剛到達我需要其他顏色,其餘的我需要另一種顏色。謝謝!

回答

0

基本的想法是寫類似

Transformer<V, Paint> vertexPaintRed = new Transformer<V, Paint>() { 
    public Paint transform(V input) { 
     if (hasOnlyOutgoingEdges(input)) return Color.RED; 
     if (hasOnlyIncomingEdges(input)) return Color.GREEN; 
     return Color.BLUE; 
    } 
}; 

與適當的執行方法檢查頂點的類型。

例如,如果你知道包含頂點,在那裏創建了變壓器的地方JUNG Graph,你可以簡單地寫

Transformer<V, Paint> vertexPaintRed = new Transformer<V, Paint>() { 
    public Paint transform(V input) { 
     if (jungGraph.inDegree(input) == 0) return Color.RED; 
     if (jungGraph.outDegree(input) == 0) return Color.GREEN; 
     return Color.BLUE; 
    } 
};