java - 是否可以使 JToggleButton 取消选择其他 JToggleButton 以达到与传统单选按钮类似的效果?

标签 java swing jtogglebutton

我实现了以下 JDialog:

[ jToggleButton1 ]     [ jToggleButton2 ]     [ jToggleButton2 ]

我希望当用户按下(-toggles-)任何 JToggleButtons 时,其他两个将其状态更改为未选中。 这将模拟经典的“一次仅按下一个”按钮集。

我已经使用以下方法实现了此行为:

private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // do stuff
        btn1.setSelected(true);
        btn2.setSelected(false);
        btn3.setSelected(false);
}

private void btn2ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // do stuff
        btn1.setSelected(false);
        btn2.setSelected(true);
        btn3.setSelected(false);
}

private void btn3ActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // do stuff
        btn1.setSelected(false);
        btn2.setSelected(false);
        btn3.setSelected(true);
}

虽然显示的示例有 3 个按钮,但我的实际场景有 15/20 个按钮。 这种实现功能的方式显然效率不高。

  1. 还有其他设计模式可以自动选择其中一种吗?
  2. JToggleButtons 是否实现了任何可以使用的功能?

注意:如果相关的话,我正在使用 Netbeans 集成 UI 编辑器来开发所有 Java swing JFrames/JDialogs。

最佳答案

尝试将按钮添加到 ButtonGroup:

ButtonGroup group = new ButtonGroup();
group.add(button1);
group.add(button2);
...

关于java - 是否可以使 JToggleButton 取消选择其他 JToggleButton 以达到与传统单选按钮类似的效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58778381/

相关文章:

Java并发递归网站下载

java - 我用 Java 编写的扫雷程序抛出 NullPointerException

java - 依赖于多个条件的执行和操作的解决方案模式

java - 如何从使用反射实现接口(interface)的类的字段中获取值?

java - Google AppEngine java.net.Socket 受限错误

java - JApplet显示

java - 如何从框架左侧制作垂直的按钮线?

java - 如何将 Swing 事件从内部组件传播到容器?

java - JDialog 中的 JButton 保持按下状态

java - 在 ChangeListener 的 JToggleButton 上监听翻转?