2012-11-14 22 views
4

我试图创建一个Java JGraphT可视化与重量,例如:如何通过JGraphT可视化表示边缘重量?

http://i.stack.imgur.com/KXRrc.png

现在我想改变边缘标签(例如:(A:B)到其边缘的重量(例如:2)。 我试图Javadoc中进行搜索,但没有看到任何东西。 请帮我谢谢!

回答

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); 
0

JGraphT是Generic实现的,所以当你传递Edge类时只需在你的类中实现toString()方法。 例如假设“城市”是我的顶点类,“路径”是我的边缘,所以实现了toString()方法

class Pathe{ 
    @Override 
    public String toString() { 
    return "Distant Between" +this.source +"this.dest" "is" + this.distance; 
    } 
}