选择按钮切换代码_取消选择组中的所有切换按钮

选择按钮切换代码

在夏天,因为我听到越来越多的海浪声而不是键盘打字声,所以我为您提供了快速的技巧,而不是详尽的文章。

这次是关于Swing。 我正在为宠物项目做Swing ... 而且我更像一个网络人。 因此,我总是把头靠在墙上,试图克服那些对Swing更有经验的人根本找不到问题。 很好,因为它教会了我另一种思考方式(作为一名Web开发人员,我并不是很基于事件,但是Vaadin之类的框架或CDI之类的标准正在使它发生变化)。

也就是说,我的最新问题如下。 在大多数情况下,切换按钮是单选按钮:您可以在屏幕显示之前以编程方式选择一个无线电,并且由于所有无线电都在同一个ButtonGroup中,因此当用户选择一个时,它会取消选择先前选择的一个。 很好,但是如果我的默认状态是不选择任何收音机怎么办?

实际上,始终选择无线电意味着默认状态应像其他无线电一样显示为无线电。 在我的项目中,我希望默认状态是未选择任何无线电,但是要保持经典的行为,即选择无线电意味着先取消选择无线电。 使用Swing默认类,即使您将单选按钮替换为切换按钮,它也不起作用:选择一个后,它保持选中状态。 查看ButtonGroup代码,可以了解原因:

publicvoidsetSelected(ButtonModelm,booleanb){
  if(b&&m!=null&&m!=selection){
    ButtonModeloldSelection=selection;
    selection=m;
    if(oldSelection!=null){
      oldSelection.setSelected(false);
    }
    m.setSelected(true);
  }
}

经典的ButtonGroup仅在状态从未选中变为选中时管理! 使用单选按钮时,这很酷,而使用切换按钮则不然。

为了在您的组中可能没有选定的按钮,请使用以下类代替ButtonGroup

publicclassNoneSelectedButtonGroupextendsButtonGroup{
  @Override
  publicvoidsetSelected(ButtonModelmodel,booleanselected){
    if(selected){
      super.setSelected(model,selected);
    }else{
      clearSelection();
    }
  }
}
clearSelection()仅从Java 6开始可用

翻译自: https://blog.frankel.ch/unselect-all-toggle-buttons-of-a-group/

选择按钮切换代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值