我尝试使用权重创建 Java JGraphT 可视化,例如:
现在我想将边缘标签(例如:(a:b)更改为其边缘权重(例如:2)。我尝试在 Javadoc 中搜索,但没有看到任何内容。请帮助我,谢谢!
这些边缘标签来自toString
边缘对象的方法。因此,您可以创建自己的边缘类并toString
以产生边缘权重的方式覆盖该方法。
您可以像这样创建自定义边缘:
class MyWeightedEdge extends DefaultWeightedEdge {
@Override
public String toString() {
return Double.toString(getWeight());
}
}
然后像这样创建您的图表,这将使图表创建边缘作为实例,MyDefaultEdge
因此在可视化中仅显示边缘权重:
SimpleWeightedGraph<String,MyWeightedEdge> graph
= new SimpleWeightedGraph<String,MyWeightedEdge>(MyWeightedEdge.class);
JGraphT 是通用实现的,因此当您传递 Edge 类时,只需在各自的类中实现 toString() 方法。例如,假设“City”是我的 Vertex 类,“Path”是我的 Edge,所以在其中实现 toString() 方法
class Pathe{
@Override
public String toString() {
return "Distant Between" +this.source +"this.dest" "is" + this.distance;
}
}