item example event ejemplo java swing jlist listselectionlistener

example - listselectionlistener java



ListSelectionListener invocado dos veces (2)

Es la forma normal, tiene que filtrar con e.getValueIsAdjusting método e.getValueIsAdjusting

class MyListListener implements ListSelectionListener { public void valueChanged (ListSelectionEvent e) { JList source = (JList) e.getSource(); // do something } } JList myList = new JList (myModel); myList.addListSelectionListener (new MyListListener());

Estoy haciendo algo muy simple. Tengo un JList. Si se selecciona un elemento de la lista, se llama al controlador. El problema es que el controlador se invoca dos veces cuando paso de un elemento a otro. Puedo ver el uso si el primer activador pasa el elemento seleccionado original y el segundo activador pasa el nuevo elemento. Pero en ambas ocasiones, se pasa el mismo nuevo elemento. Cuál es el punto de esto ? ¿Hay alguna manera de evitar que se llame dos veces al controlador?


e.getValueIsAdjusting es lo que está buscando. Como se indica en el javadoc de ese método.

Devuelve si se trata o no de uno de una serie de eventos múltiples, donde aún se realizan cambios