2013-04-07 156 views
0

我想改变我的边缘的颜色使用Jgrapht,以便我可以在我的整个图表中显示对应关系。假设节点1和节点2之间存在边界。我将用红色(比如说)突出显示这些节点。我将在整个图中找到节点1和2,并以红色和其他颜色显示其余节点。我看到,创建可视化文件是SimpleTouchgraphApplet.java在这个文件中,我加入了之类的语句,Jgrapht边缘颜色

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

我发现可以在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)将使节点颜色为红色所生成的曲线图。