最近在做一个Swing的设计,用到了 ComboBox 下拉框,在为 ComboBox 的 Item 添加监听时遇到一个问题:每次点击都会触发两次监听事件。
查找资料得知,每一个 Item 在整个生命周期都会触发两次 ItemListener 事件:
当点击一个 Item 时,分别会触发上一个被选中 Item 的取消选中事件和当前 Item 的选中事件,如此,必须要对这两个事件进行一个过滤,以这个思想为基础,而后便对 ItemEvent 的各个 get...( ) 方法进行了一次检查:
果然,在 getStateChange() 方法上找到了突破:
可以以此为基础来对事件进行过滤