我尝试使用Weight创建Java JGraphT可视化,例如:
现在我想更改边缘标签(例如:(a:b)到它的边缘权重(例如:2)。 我试图在Javadoc搜索,但没有看到任何东西。 请帮帮我谢谢!
答案 0 :(得分:4)
这些边标签来自边缘对象的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);
答案 1 :(得分:0)
JGraphT是Generic实现的,因此当您通过Edge类时,只需在各自的类中实现toString()方法。 例如。假设“City”是我的Vertex类,“Path”是我的Edge,所以在那里实现toString()方法
class Pathe{
@Override
public String toString() {
return "Distant Between" +this.source +"this.dest" "is" + this.distance;
}
}