2012-01-26 8 views
3

정 2에서 버텍스 선택 변경을 어떻게들을 수 있습니까? PropertyChangeListener 및 ChangeListener를 사용해 보았습니다.정 2에서 정점 선택 변경을 듣는 방법?

+0

EXPLICT 자바 리스너 모델을 사용하지 않는 것 JUNG2; 개개의 버티스/엣지 프로퍼티를 변경하기 위해서 (때문에) 「Transformers」를 사용해, 특수한 마우스 이벤트를 수신하기 위해서 (때문에)'Plugins'를 사용합니다. – ecle

답변

7

이 멋지게 그냥 VisualizationViewer의 PickedVertexState에 리스너를 추가 http://kahdev.wordpress.com/2010/02/20/detecting-selection-of-vertices-in-jung/

에 설명 :

Graph<Integer, String> basis = new SparseMultigraph<Integer, String>(); 
final Layout<Integer, String> layout = new CircleLayout<Integer, String>(
    basis); 

layout.setSize(new Dimension(300, 300)); 
VisualizationViewer<Integer, String> vv = new VisualizationViewer<Integer, String>(
    layout); 

final PickedState<Integer> pickedState = vv.getPickedVertexState(); 

// Attach the listener that will print when the vertices selection changes. 
pickedState.addItemListener(new ItemListener() { 

    @Override 
    public void itemStateChanged(ItemEvent e) { 
     Object subject = e.getItem(); 
     // The graph uses Integers for vertices. 
     if (subject instanceof Integer) { 
      Integer vertex = (Integer) subject; 
      if (pickedState.isPicked(vertex)) { 
       System.out.println("Vertex " + vertex 
        + " is now selected"); 
      } else { 
       System.out.println("Vertex " + vertex 
        + " no longer selected"); 
      } 
     } 
    } 
}); 
관련 문제