ChangeListener
和ItemListener
對於JCheckBox
和JRadioButton
有什麼區別?當他們被選中/取消選擇時,他們都能正常工作。ChangeListener和ItemListener之間的區別
我知道一些組件不支持ChangeListener
,比如JComboBox
。除了ChangeListener
或ItemListener
僅適用於某些組件的原因之外。它們之間有什麼區別,比如它們何時產生?
任何答案表示讚賞。提前致謝。
ChangeListener
和ItemListener
對於JCheckBox
和JRadioButton
有什麼區別?當他們被選中/取消選擇時,他們都能正常工作。ChangeListener和ItemListener之間的區別
我知道一些組件不支持ChangeListener
,比如JComboBox
。除了ChangeListener
或ItemListener
僅適用於某些組件的原因之外。它們之間有什麼區別,比如它們何時產生?
任何答案表示讚賞。提前致謝。
JCheckBox
這兩個聽衆的工作原理類似,都是通過點擊或切換空格鍵或通過編程方式通過doClick()
方法(類似於鼠標點擊)來觸發狀態更改時的事件。不過,一個主要區別是JCheckBox的itemListener可以通過setSelected(boolean
)方法觸發,該方法允許人們根據所需的狀態觸發事件,而其他人只有在狀態改變後才能觸發事件。那麼爲什麼它很重要?考慮應用程序啓動時,GUI需要配置的定義狀態,並使用setSelected
將觸發ItemListener。請注意,setSelected
是ItemListener的獨佔功能,對ActionListener沒有影響。不要同時註冊ActionListener和ItemListener,因爲兩者都將被觸發,以隨機狀態着陸組件
問題是關於_change-_ vs. itemListener,而不是關於動作vs. itemListener :-)看到它被接受,你的水晶球揭示了OP後真的是+1! – kleopatra
釋放按鈕時,只會引發一次項目事件(itemStateChanged方法調用)。 更改事件(stateChanged方法調用)會引發兩次:當您按下按鈕時,如果您想要澄清您的答案,請在釋放按鈕時再次按下 – rags
,但編輯方式是:-)無論如何,您的評論不是足夠精確:您無法真正預測ChangeListener多長時間通知用戶手勢觸發的單個選擇更改(因爲它是非特定事件,廣播模型狀態的多個方位) – kleopatra