2013-04-07 232 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)將使節點顏色爲紅色所生成的曲線圖。