昆山网站建设价格,烟台广告公司联系方式,杭州工程招标网,wordpress 音乐服务器今天做项目#xff0c;用到了JComboBox#xff0c;即下拉列表框。为了在被选中的项发生改变时获得被选中的项#xff0c;所以使用的ItemStateChanged事件#xff0c;可是问题就来了#xff0c;每次触发该事件#xff0c;它都执行两次#xff0c;屡试不爽。一开始以为是代…今天做项目用到了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文档