如何更改一种边缘的颜色和笔触

时间:2013-12-03 13:56:41

标签: java jung transformer jung2

我有一个图表< Potter,Edge> g其中Edges属于扩展Edge类的三个不同的类(我用它来表示不同类型的交互,比如开始相关,请求建议等等......)。我想根据它们所代表的颜色对边缘进行着色,例如让所有父级边缘变为绿色而不显示箭头。我有这个变换器来改变颜色,但它似乎改变了所有边缘的颜色:

Transformer<Edge, Paint> parental_color_yes = new Transformer<Edge, Paint>() {
        @Override
        public Paint transform(Edge s) {
            return Color.GREEN;
        }
    };

如果我将变压器的类型改为Transformer&lt; Parental,Paint&gt;,然后是我的VisualizationViewer&lt; Potter,Edge&gt; vv抱怨不能接受这样的变换器...我应该添加一个新的可视化查看器吗?或者变压器有什么问题?

回复后编辑:

 parental_color_yes = new Transformer<Edge, Paint>() {
        @Override
        public Paint transform(Edge s) {
            if (s instanceof Parental){
                return Color.GREEN;
            } else if (s instanceof Innovation) {
                return Color.RED;
            } else {
                return Color.BLACK;
            }
        }
    };

感谢您的帮助!

祝你好运, 西蒙

1 个答案:

答案 0 :(得分:0)

它需要是Edge-Paint Transformer。在transform方法中,使用instanceof check来查看要返回的颜色。