如何改变JUNG中细节顶点的颜色

时间:2014-01-17 16:19:51

标签: java graph colors jung

我正在尝试更改Vertex的颜色,但只是其中一些,我需要在屏幕上显示3种不同的颜色,有人知道如何做到这一点吗? 我是这样做的:

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

但有了它我就可以改变所有Vertex的颜色。我想要改变其中一些的颜色,那些只有边缘出来的我需要一种颜色,其他有边缘到达我需要其他颜色,其余我需要另一种颜色。谢谢!

1 个答案:

答案 0 :(得分: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的位置,您只需编写

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;
    }
};