ChangeListener
和ItemListener
的JCheckBox
和JRadioButton
有什么区别?当它们被选中/取消选择时,它们都可以正常工作。
我知道某些组件不支持ChangeListener
,例如JComboBox
。除了ChangeListener
或ItemListener
仅对某些组件起作用的原因之外。它们之间有什么区别,例如它们何时生成?
任何答案表示赞赏。提前致谢。
最佳答案
JCheckBox
的两个监听器的工作方式相似,两者都将在状态更改时触发事件,无论是通过单击还是通过空格键切换,还是通过doClick()
方法以编程方式(类似于鼠标单击)。不过,主要区别在于,可以通过setSelected(boolean
)方法触发JCheckBox的itemListener,该方法允许一个根据所需的状态触发事件,而其他方法仅在状态更改后才起作用。那么为什么重要呢?考虑在应用程序启动时,需要配置GUI来定义定义的状态,并且使用setSelected
将触发ItemListener。请注意,setSelected
是ItemListener专有的,对ActionListener无效。不要同时注册ActionListener和ItemListener,因为两者都会被触发,从而使组件处于随机状态