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

我做的事情很简单。我有一个JList。如果列表中的项目被选中,则处理程序被调用。问题是当我从一个项目转到另一个项目时,处理程序被调用两次。如果第一个触发器传递了原始选定项目,并且第二个触发器传递了新项目,我可以看到使用情况。但是这两次,同一个新项目都通过了。那是什么意思?有没有办法阻止处理程序被调用两次?ListSelectionListener被调用两次

回答

25

e.getValueIsAdjusting是你在找什么。如该方法的Javadoc指出

返回是否这是一个在一系列的多个事件,其中的变化仍在做

+0

所以我没有发疯。感谢你的回答。 – Michael