2013-04-07 4 views
0

전체 그래프에서 서신을 표시 할 수 있도록 Jgrapht를 사용하여 가장자리의 색상을 변경하고 싶습니다. 노드 1과 2 사이에 모서리가 있다고 가정합시다.이 노드를 적색으로 강조 표시하겠습니다. 전체 그래프에서 노드 1과 노드 2를 찾아서 붉은 색으로 표시하고 나머지 노드는 다른 색으로 표시합니다. 나는, 같은 문장을 추가하고 Jgrapht edge color

setBackground(Color.green); 
setForeground(Color.cyan); 

내가 초기화 섹션에서 위의 두 문장을 추가, 시각화를 생성 파일이이 파일에서 SimpleTouchgraphApplet.java입니다 참조하십시오. 나는 또한 내 주요 기능에 아래의 진술을 추가했습니다.

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) 생성 된 그래프에서 적색 노드 컬러를 만들 것이다.