如何在JUNG图中获取并修改V0与V12之间的指定边颜色
修改JUNG图中特定节点间边的颜色
要单独修改根节点V0和V12之间的边颜色,核心是在边颜色绘制函数里精准匹配这条边。你可以通过判断边的两个端点是否为目标节点来实现,具体代码如下:
// 先获取图中V0和V12的节点实例(确保是图中已存在的对象,不是新创建的) Vertex v0 = ...; // 替换成你实际获取V0的代码 Vertex v12 = ...; // 替换成你实际获取V12的代码 // 设置边颜色绘制逻辑 vv.getRenderContext().setEdgeDrawPaintFunction(edge -> { // 适配有向/无向图:判断当前边是否连接V0和V12 boolean isTargetEdge = (edge.getSource().equals(v0) && edge.getDest().equals(v12)) || (edge.getSource().equals(v12) && edge.getDest().equals(v0)); return isTargetEdge ? Color.RED : Color.BLACK; });
补充说明:
- 如果你的图是有向图,且确定边是从V0指向V12,可简化判断条件,只保留
edge.getSource().equals(v0) && edge.getDest().equals(v12)即可。 - 务必保证
v0和v12是图中已存在的节点对象,不能是重新实例化的新对象——如果节点类未重写equals方法,默认会以引用地址做比较,新对象会导致匹配失败。
内容的提问来源于stack exchange,提问作者Doktor_DOOM
相关产品推荐
相关产品推荐

