对于JCheckBox和JRadioButton,ChangeListener和ItemListener有什么不同?当它们被选中/取消选中时,它们都工作得很好。
我知道有些组件不支持ChangeListener,比如JComboBox。而不是因为ChangeListener或ItemListener只对某些组件起作用。它们之间有什么区别吗,比如它们是什么时候生成的?
任何答案都是值得感谢的。提前谢谢。
发布于 2013-07-01 19:20:39
JCheckBox的两个侦听器的工作方式相似,因为它们都会在状态发生变化时触发事件,无论是通过单击还是通过空格键切换,还是通过doClick()方法(类似于鼠标单击)。然而,一个主要的区别是JCheckBox的itemListener可以通过setSelected(boolean方法触发,该方法允许一个人基于所需的状态触发事件,而其他人只有在状态改变后才会采取行动。那么为什么它很重要呢?考虑到当应用程序启动时,需要为定义状态配置图形用户界面,并且使用setSelected将触发ItemListener。请注意,setSelected是ItemListener独占的,对ActionListener没有影响。不要同时注册ActionListener和ItemListener,因为两者都将被触发,从而使组件处于随机状态
发布于 2013-07-01 19:55:08
当按钮状态有任何变化时,ChangeListener不会被标记。ChangeListener不会被告知发生了什么变化,只会被告知对象发生了变化。仅当选择项时才不标记项侦听器;通过user或setSelected方法。当setSelected方法被调用时,ChangeListener没有被赋值也是不正确的。它是对象状态的变化。
https://stackoverflow.com/questions/17403163
复制相似问题