java-JButton上的itemStateChanged

我读到一个JButton实现了ItemSelectable,并且在文档中它具有方法addItemListener,所以我可以争辩说它可以生成一个ItemEvent …但是当我向一个JButton注册(还为一个JMenuItem注册)时,该事件没有发生吗?

 

为什么?

我了解,如果在docs中报告某个组件具有add ….侦听器,则表示它支持该事件…但出于经验的考虑,这种情况并不常见.

真相是什么

最佳答案

“按下”按钮(触发一个ActionEvent)和一个“选择”按钮(触发ItemEvent)之间是有区别的.默认情况下,JButton由javax.swing.DefaultButtonModel支持.如果查看默认按钮模型中的setPressed和setSelected方法,您将看到触发不同事件的代码.

 

因此,如果您以编程方式调用JButton.setSelected,则将触发您的项目侦听器.如果单击该按钮,则只会获得操作事件.

还要注意,使用JButton(与JToggleButton不同)时,选择它时可能看不到太多视觉效果.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值