2011-03-01 52 views
3

我的Java類JList和ListSelectionListener:的Java ListSelectionListener雙變值

final JList myList = new JList(); 

// ... 

myList.addListSelectionListener(new ListSelectionListener() { 
      public void valueChanged(ListSelectionEvent e) { 
       System.out.println("selected"); 
      } 
}); 

但輸出

selected 
selected 

我應該如何改變我的代碼,該輸出應該是一個selected

回答

3

嘗試

  if(e.getValueIsAdjusting()) 
     { 
      System.out.println("Selected"); 
     } 
+0

謝謝!這工作。 – Martynas 2011-03-01 13:26:09

+1

然而,當你用向上和向下的箭頭遍歷列表時,這會中斷。因此,在這種情況下,如果(!e.getValueIsAdjusting())使用 System.out.println(「Selected」); } 除此之外,這工作得很好。 – 2012-10-02 19:41:01

+1

Chris是對的,它應該在'e.getValueIsAdjusting()'前面有一個'!'。 – sdasdadas 2013-06-07 18:18:51

2

看看getValueIsAdjusting。這

返回是否是一個在 一系列的多個事件,其中 變化仍在做

只打印「選擇」時,此方法返回false的。

+0

雖然其他的答案是在正確的道路這一塊應該註明,因爲getValuesAdjusting最好的()在最後一個事件將返回false。 – Jigzat 2013-08-14 21:02:00

1

您將需要參考:

getValueIsAdjusting()ListSelectionEvent.從API:返回是否這是一個在一系列的多個事件,其中的變化仍然被製成。