我有一个 Graph< 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< Parental, Paint>,那么我的 VisualizationViewer< Potter, Edge> 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;
}
}
};
感谢您的帮助!
最好的问候,西蒙娜