ChangeListener
和 和和ItemListener
有什么不一样?选择/取消选择它们时,它们都可以正常工作。JCheckBox
JRadioButton
我知道有些组件不支持ChangeListener
像JComboBox
. 除了仅适用于某些组件的原因ChangeListener
之外ItemListener
。它们之间有什么区别,比如它们是什么时候生成的?
任何答案表示赞赏。提前致谢。
ChangeListener
和 和和ItemListener
有什么不一样?选择/取消选择它们时,它们都可以正常工作。JCheckBox
JRadioButton
我知道有些组件不支持ChangeListener
像JComboBox
. 除了仅适用于某些组件的原因ChangeListener
之外ItemListener
。它们之间有什么区别,比如它们是什么时候生成的?
任何答案表示赞赏。提前致谢。
两个侦听器的JCheckBox
工作方式相似,因为两者都会在状态更改时触发事件,无论是通过单击或通过空格键切换还是通过doClick()
方法以编程方式(类似于鼠标单击)。一个主要的区别是 JCheckBox 的 itemListener 可以通过setSelected(boolean
) 方法触发,该方法允许基于所需状态触发事件,而其他人仅在状态更改后才会执行。那么为什么它很重要呢?考虑当应用程序启动时,需要为定义的状态配置 GUI,并且使用setSelected
将触发 ItemListener。请注意,这setSelected
是 ItemListener 独有的,对 ActionListener 没有影响。不要同时注册 ActionListener 和 ItemListener 因为两者都会被触发,使组件处于随机状态
当按钮状态发生任何变化时,会通知 ChangeListener。ChangeListener 不会被通知发生了什么变化,只会通知对象发生了变化。仅在选择项目时才通知项目侦听器;通过用户或 setSelected 方法。调用 setSelected 方法时不会通知 ChangeListener 也是不正确的。它是对象状态的变化。