日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java代码执行了两次_Java中JComboBox的itemStateChanged事件执行两次的解释

發布時間:2025/3/11 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java代码执行了两次_Java中JComboBox的itemStateChanged事件执行两次的解释 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天做項目,用到了JComboBox,即下拉列表框。為了在被選中的項發生改變時獲得被選中的項,所以使用的ItemStateChanged事件,可是問題就來了,每次觸發該事件,它都執行兩次,屢試不爽。一開始以為是代碼寫錯了,可是仔細檢查確沒有發現什么可疑的地方,百思不得其解。于是到網上查找資料,發現很多朋友都遇到了一樣的情況,于是斷定,并非自己的代碼錯誤。便開始查資料,翻書,問朋友。一番苦功沒有白下,終于在朋友那里得到了滿意的合理的解答,恍然大悟。

解釋一下原因,其實很簡單,從該事件的字面意思來理解,就是item的狀態發生改變時觸發該事件,item在這里的狀態有兩個,Selected 和 deSelected(即選中和未被選中),所以,當改變下拉列表中被選中的項的時候,其實是觸發了兩次事件,第一次是上次被選中的項的 State 由 Selected 變為 deSelected ,即取消選擇, 第二次是本次被選中的項的 State 由 deSelected 變為 Selected ,即新選中,所以,必然的 ItemStateChanged 事件中的代碼要被執行兩次了。

解決方法 就是:

if(e.getStateChange() == ItemEvent.SELECTED){

//要執行的代碼

}

即為當事件是選中某一項的時候,才執行該代碼。

這一點,竊以為不如C#了,人家起碼有個SelectedIndexChanged事件,可以直接在被選中項發生改變是觸發,而不會有以上的歧義~

Java中JComboBox的itemStateChanged事件執行兩次的解釋.doc

下載Word文檔到電腦,方便收藏和打印[全文共568字]

編輯推薦:

下載Word文檔

總結

以上是生活随笔為你收集整理的java代码执行了两次_Java中JComboBox的itemStateChanged事件执行两次的解释的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。