2012-10-19 16 views
16
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()); 

Ich mache etwas sehr einfaches. Ich habe eine JListe. Wenn ein Element in der Liste ausgewählt ist, wird der Handler aufgerufen. Das Problem ist, dass der Handler zweimal aufgerufen wird, wenn ich von einem Element zum anderen gehe. Ich kann die Verwendung sehen, wenn der erste Auslöser den ursprünglich ausgewählten Gegenstand übergibt und der zweite Auslöser den neuen Gegenstand weitergibt. Aber beide Male wird derselbe neue Gegenstand übergeben. Was ist der Sinn? Gibt es eine Möglichkeit zu verhindern, dass der Handler zweimal angerufen wird?ListSelectionListener wird zweimal aufgerufen

Antwort

25

e.getValueIsAdjusting ist, was Sie suchen. Wie in der javadoc dieser Methode angegeben

Returns, ob diese eine in einer Reihe von mehreren Ereignissen ist, wo Änderungen noch

+0

So wurde ich schließlich nicht verrückt. Danke für die Antwort. – Michael

Verwandte Themen