2012-11-14 42 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; 
    } 
}