如何通过 JGraphT 可视化表示边缘权重?

Kyr*_*ris 5 java jgrapht

我尝试创建一个带有权重的 Java JGraphT 可视化,例如:

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

现在我想将边缘标签(例如:(a:b)更改为其边缘重量(例如:2)。我尝试在Javadoc中搜索但没有看到任何内容。请帮助我谢谢!

Kar*_*rak 4

这些边缘标签来自toString边缘对象的方法。因此,您可以创建自己的边类并toString以产生边权重的方式重写该方法。

您可以像这样创建自定义边缘:

class MyWeightedEdge extends DefaultWeightedEdge {
  @Override
  public String toString() {
    return Double.toString(getWeight());
  }
}
Run Code Online (Sandbox Code Playgroud)

然后像这样创建图表,这将使图表创建边缘作为实例MyDefaultEdge,因此在可视化中仅显示边缘权重:

SimpleWeightedGraph<String,MyWeightedEdge> graph
  = new SimpleWeightedGraph<String,MyWeightedEdge>(MyWeightedEdge.class);
Run Code Online (Sandbox Code Playgroud)