java - 哪些 SWING 元素可以添加到 ButtonGroup 中才有意义?

标签 java swing buttongroup

尽管每个 AbstractButton 都可以添加到 ButtonGroup(根据 Java API ),但我想问一下,添加哪些元素真正有意义。

下面两个绝对可以:

  • JRadioButton
  • JRadioButtonMenuItem

我想知道:

  • JCheckBox <- 与 JRadioButton 一样,继承自 JToggleButton
  • 任何其他AbstractButton

最佳答案

ButtonGroup 用于为一组按钮创建多重排除范围。使用相同的 ButtonGroup 对象创建一组按钮意味着打开其中一个按钮会关闭该组中的所有其他按钮。

ButtonGroup 可以与继承自 AbstractButton 的任何对象集一起使用。通常 ButtonGroup 包含 JRadioButton、JRadioButtonMenuItem 或 JToggleButton 的实例。将 JButtonJMenuItem 的实例放在 ButtonGroup 中是没有意义的,因为 JButtonJMenuItem 不实现选定状态。

最初,组中的所有按钮都未被选中。选择任何一个按钮后,该组中始终会选择一个按钮。无法以编程方式将按钮设置为“关闭”,以清除按钮组。要给出“未选择”的外观,请将一个不可见的 JRadioButton 添加到组中,然后以编程方式选择该按钮以关闭所有显示的 JRadioButtons。例如,可以连接带有标签“none”的普通按钮以选择不可见的 JRadioButton

有关使用 ButtonGroups 的示例和更多信息 see How to Use JRadioButtons ,Java 教程中的一个部分。

关于java - 哪些 SWING 元素可以添加到 ButtonGroup 中才有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10749818/

相关文章:

java - 如何在 Java 面板中添加 JRadioButton 的按钮组或仅在面板中添加 JRadioButton?

java - 我无法确定此 JRadioButton 功能的语义

java - 为什么不能在接口(interface)类型上引用类的方法

java - 在 Applet 上使用 AWT 放大/缩小图表

java - JXTreeTable - 从外部应用程序操作复选框 - 可能吗?

java - Mac OS Java 7 JDialog.dispose 内存泄漏

java - 在Java中清除一组单选按钮

Java EE CDI 实例 |如何获得真正的类(class)

java - 我可以让方法为调用方方法返回吗?

java - 递归洗牌算法抛出 StackOverflow 错误