ChangeListener和ItemListener之间的区别

时间:2013-07-01 11:15:14

标签: java swing awt itemlistener changelistener

ChangeListenerItemListener的{​​{1}}和JCheckBox之间有什么区别?选择/取消选择它们时,它们都可以正常工作。

我知道有些组件不像JRadioButton那样支持ChangeListener。除了JComboBoxChangeListener仅适用于某些组件的原因。它们之间是否存在差异,就像它们何时生成一样?

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

当按钮状态发生任何变化时,ChangeListener无法使用。 ChangeListener不会通知已更改的内容,仅通知对象已更改。只有在选择项目时才会监听项目监听器;按用户或setSelected方法。当调用setSelected方法时,ChangeListener也不是没有用的。它是对象状态的变化。