当前位置: 首页 > 面试题库 >

检测JRadioButton状态更改

融烨华
2023-03-14
问题内容

当用鼠标单击时,如何检测JRadioButton从“未选中”更改为“选中”?我曾尝试在按钮上使用ActionListener,但是每次单击单选按钮时都会触发该事件,而不仅仅是在将状态更改为“选定”时触发。

我曾想过要维护一个记住按钮状态的布尔变量,并在ActionListener中对其进行测试以查看是否更改其状态,但是我想知道是否有更好或更干净的解决方案。


问题答案:

看一下JRadioButton。addItemListener()

编辑:不太可能要使用changeListener,因为它每次单击会触发多次。每次点击仅触发一次itemListener。
看这里

EDIT2:只是为了对此进行扩展,即使用户已选择jradioButton上的actionListener,它也会在用户每次单击时触发。如果那是您想要的,那很好,但是我觉得很烦。我只想通知它已被选中或取消选中。

一个ChangeListener将会触发各种各样的事情,这意味着您的监听器每次点击将收到5个或更多事件。不好。


当选定或取消选定状态更改时,条目侦听器才会触发。这意味着用户可以多次单击它,并且如果不更改它也不会触发。在您的处理程序方法中,您将必须具有if检查SELECTEDDESELECTED状态的块,然后在其中进行任何操作:

@Override
public void itemStateChanged(ItemEvent e) {
    if (e.getStateChange() == ItemEvent.SELECTED) {
        // Your selected code here.
    }
    else if (e.getStateChange() == ItemEvent.DESELECTED) {
        // Your deselected code here.
    }
}

这样做会更好,因为您知道,如果您在方法中,则单选按钮已被选中或取消选中,而不是因为某种未知的原因,用户只是在界面上敲打。



 类似资料:
  • 问题内容: 我有一个带有按钮的应用程序,用于打开和关闭BT。我那里有以下代码; 我正在调用按钮Flip(翻转BT状态),然后调用ButtonText,后者应该更新UI。但是,我遇到的问题是,打开BT需要花费几秒钟的时间- 在这几秒钟中,BT状态未启用,即使我的按钮在2秒钟内打开,我的按钮也会关闭蓝牙。 我在BluetoothAdapter android文档中找到了该常量,但是…我只是不知道如何使

  • Hibernate 的用户曾要求一个既可自动分配新持久化标识(identifier)保存瞬时(transient)对象,又可更新/重新关联脱管(detached)实例的通用方法。saveOrUpdate() 方法实现了这个功能。 // in the first session Cat cat = (Cat) firstSession.load(Cat.class, catID); // in a

  • 问题内容: 我想知道何时失去互联网连接并重新获得互联网,以便可以在显示“糟糕,没有互联网”的警报和包含从我的服务器派生的数据的Google地图或网格之间切换。 这个相关的问题和另一个相关的问题认为他们有答案,但没有答案。 他们的解决方案适用于Chrome版本34.0.1847.137 m,MS IE v11.0.xx,但不适用于FireFox v29.0.1,因此,我正在寻求一种适用于所有这三种浏

  • 有没有一种方法来检测响应与Alamofire 4?我发现Alamofire总是200,即使服务器响应304。 网络呼叫设置: Alamofire响应报头 服务器响应

  • 说明 支付宝境外到店支付-更新商户二维码状态 官方文档:https://global.alipay.com/service/merchant_QR_Code/34 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayCrossBorder\InStore\ModifyStatus\Request 属性 名称 类型 说明 $service string 接口名称 $timesta

  • 本文向大家介绍Python检测QQ在线状态的方法,包括了Python检测QQ在线状态的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python检测QQ在线状态的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。