Как прослушать изменение выбора вершины в Юнге 2?

как я могу прослушать изменение выбора вершины в Юнге 2? Я пытался использовать PropertyChangeListener и ChangeListener.


person Daniel Cisek    schedule 26.01.2012    source источник
comment
JUNG2, похоже, не использует явные модели слушателей Java; он использует Transformers для изменения отдельных свойств вершины/ребра и Plugins для прослушивания специализированных событий мыши.   -  person ecle    schedule 26.01.2012


Ответы (1)


Это хорошо объяснено на http://kahdev.wordpress.com/2010/02/20/detecting-selection-of-vertices-in-jung/

Просто добавьте прослушиватель в PickedVertexState вашего VisualizationViewer:

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");
            }
        }
    }
});
person Stefan Endrullis    schedule 10.02.2012