2012-01-26 9 views
3

Jung 2の頂点選択の変更をどのように聞くことができますか?私はPropertyChangeListenerとChangeListenerを試してきました。Jung 2の頂点選択の変更を聞くには?

+0

JUNG2は、明示的なJavaのリスナーモデルを使用していないようです。個々の頂点/エッジプロパティを変更するために '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"); 
      } 
     } 
    } 
}); 
関連する問題