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

标签 java jgrapht

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

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

现在我想将边标签(例如:(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);

关于java - 如何通过 JGraphT 可视化表示边权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13378519/

相关文章:

java - 带有图像和文本的 AsyncTask

java - Firebase 内容 - 如何从 onSuccess() 方法外部访问 taskSnapshot.getDownloadUrl()

java - 使用Java插入mySql

java - 如何在 JGraphT 中的图上允许负权重?

java - 将值传递给 JLabel

java - JDBC `decimal(28,2)` 变为 `java.sql.Types.DOUBLE`

java - 如何将jgrapht简单图序列化为json?

java - 是否可以创建具有一定冗余级别的连通图?

java - 是否可以使用 jGraphT 检查 TicTacToe 游戏的获胜条件?