9

ChangeListener和 和和ItemListener有什么不一样?选择/取消选择它们时,它们都可以正常工作。JCheckBoxJRadioButton

我知道有些组件不支持ChangeListenerJComboBox. 除了仅适用于某些组件的原因ChangeListener之外ItemListener。它们之间有什么区别,比如它们是什么时候生成的?

任何答案表示赞赏。提前致谢。

4

2 回答 2

5

两个侦听器的JCheckBox工作方式相似,因为两者都会在状态更改时触发事件,无论是通过单击或通过空格键切换还是通过doClick()方法以编程方式(类似于鼠标单击)。一个主要的区别是 JCheckBox 的 itemListener 可以通过setSelected(boolean) 方法触发,该方法允许基于所需状态触发事件,而其他人仅在状态更改后才会执行。那么为什么它很重要呢?考虑当应用程序启动时,需要为定义的状态配置 GUI,并且使用setSelected将触发 ItemListener。请注意,这setSelected是 ItemListener 独有的,对 ActionListener 没有影响。不要同时注册 ActionListener 和 ItemListener 因为两者都会被触发,使组件处于随机状态

于 2013-07-01T11:20:38.780 回答
1

当按钮状态发生任何变化时,会通知 ChangeListener。ChangeListener 不会被通知发生了什么变化,只会通知对象发生了变化。仅在选择项目时才通知项目侦听器;通过用户或 setSelected 方法。调用 setSelected 方法时不会通知 ChangeListener 也是不正确的。它是对象状态的变化。

于 2013-07-01T11:55:07.827 回答