我想使用Jgrapht更改边缘的颜色,以便在整个图形中显示对应关系。让我们假设节点1和2之间存在边缘。我将以(例如)红色突出显示这些节点。我将在整个图中找到节点1和2,并以红色显示它们,其余节点以其他颜色显示。我看到创建可视化文件的文件是 SimpleTouchgraphApplet.java 在这个文件中,我添加的语句如,
setBackground(Color.green);
setForeground(Color.cyan);
我在init部分添加了上述两个语句。我还在主函数中添加了以下语句。
Color defaultBackColor = new Color(0x01, 0x11, 0x44);
JFrame frame = new JFrame();
frame.setBackground(defaultBackColor);
frame.setForeground(Color.CYAN);
但是,我没有看到前景色或背景色有任何变化。请告诉我哪里出错了。
答案 0 :(得分:0)
我发现可以在TouchGraphConverter.java文件中添加边缘着色。
以下函数构造节点。
public Node convertToTouchGraph(
Graph<V, E> graph,
TGPanel tgPanel,
boolean selfReferencesAllowed)
throws TGException
{
List<V> jgtNodes = new ArrayList<V>(graph.vertexSet());
Node [] tgNodes = new Node[jgtNodes.size()];
// add all the nodes...
for (int i = 0; i < jgtNodes.size(); i++) {
Node n;
if (jgtNodes.get(i) instanceof Node) {
// if our JGraphT object was a touchGraph node, add it unaltered
n = (Node) jgtNodes.get(i);
} else {
// create a TG Node with a "label" and "id" equals to the
// objects toString() value
n = new Node(jgtNodes.get(i).toString());
}
// store this for edge-related creation below
tgNodes[i] = n;
tgPanel.addNode(n);
tgNodes[i].setBackColor(Color.RED);
最后一行 tgNodes [i] .setBackColor(Color.RED)会使生成的图表中的节点颜色变为红色。