gpt4 book ai didi

java - 预熔。将鼠标悬停在节点上时,如何更改连接边的可视化?

转载 作者:行者123 更新时间:2023-12-02 05:21:36 26 4
gpt4 key购买 nike

我使用这个典型的片段(来自 prefuse 示例)来更改鼠标悬停在其中一个节点上时的颜色:

ColorAction nFill = new ColorAction(NODES, VisualItem.FILLCOLOR);
nFill.setDefaultColor(ColorLib.gray(255));
nFill.add("_hover", ColorLib.gray(200));

我也想将该节点的进出边缘的颜色设置为不同的颜色,最好将内部的颜色与外部的颜色设置为不同的颜色,但我找不到正确的谓词来使用。

我正在使用有向图,以防万一。

有没有办法在谓词 API 中迭代当前节点/边的子节点/父节点?您对我的实际问题有解决方案吗?

最佳答案

我找到了一种无需谓词即可完成此操作的方法,而是通过创建自己的 ColorAction 子类:

class ConnectedEdgeColorAction extends ColorAction {

final int outgoing = ColorLib.rgb(255, 100, 100);
final int incoming = ColorLib.rgb(100, 255, 100);
final int none = ColorLib.gray(100);

public ConnectedEdgeColorAction(String group, String field) {
super(group, field);
}

@Override
public int getColor(VisualItem item) {
if (item instanceof EdgeItem) {
if (((EdgeItem) item).getSourceItem().isHover()) {
return outgoing;
} else if (((EdgeItem) item).getTargetItem().isHover()) {
return incoming;
}
}

return none;
}

}

然后,我将其用作边缘的主要颜色操作:

ColorAction nEdges = new ConnectedEdgeColorAction(EDGES, VisualItem.STROKECOLOR);

我不知道这是否是“首选”方式,但它对我来说足够好。

关于java - 预熔。将鼠标悬停在节点上时,如何更改连接边的可视化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com