2015-04-04 42 views
0

我今天學習了ComboBox主題,但是如果在代碼中聲明我不明白這一點。如果這些陳述有效,如何解釋它。Java中的組合框如果說明

class ItemChangeListener implements ItemListener{ 
@Override 
public void itemStateChanged(ItemEvent event) { 
    if (event.getStateChange() == ItemEvent.SELECTED) { 
     Object item = event.getItem(); 
     // do something with object 
    } 
}  

}

+0

有多種ITEMSTATE的變化,那是什麼,如果命令過濾掉(不選中):你只關心關於選擇一個組合框。對於那種事件,實際選擇的項目是'event.getItem()'。 – eckes 2015-04-04 20:16:44

回答

0

itemStateChanged該方法將被調用的任何時間在組合框中的變化項目的狀態。

if語句,if (event.getStateChange() == ItemEvent.SELECTED) {正在檢查以查看究竟發生了什麼變化。它正在檢查變化是否是一個項目被選中。

然後,在if語句塊中,一旦代碼確定某個項目確實被選中,則代碼繼續確定哪個項目實際被選中。

此代碼演示如何在代碼中處理組合框內的選擇更改,並且可以預期,當選擇該項目時,您的自定義代碼將執行與您的應用程序更相關的操作。對於被取消的項目(event.getStateChange() == ItemEvent.DESELECTED),第二次爲被選中的項目(event.getStateChange() == ItemEvent.SELECTED)第一次:

1

當您更改的ComboBox選擇,itemStateChanged被激發兩次。

換句話說,需要if來檢查item是當前選擇還是舊選擇。

0

如果ItemEvent「更改事件狀態」等於(==ItemEvent.SELECTED,它確實(僅)與物品有關。 所以從人的角度講倒置:它還對其他所有事件狀態沒有

希望這有助於乾杯,