【问题标题】:How to select a JRadioButton from ButtonGroup?如何从 ButtonGroup 中选择 JRadioButton?
【发布时间】:2015-03-01 23:56:15
【问题描述】:

我尝试在 java 中做一个图像创建程序(带有正方形/圆形/等) 我在一个 ButtonGroup 中有几个 JRadioButtons,它们象征着我的程序的“模式”(如果我画一个圆圈,其他的东西/如果我移动对象)。 当我点击不同的模式时,“模式”会改变,我可以做我想做的事。 我的问题是当我尝试通过双击一个对象来更改模式时。我在 MouseListener 中执行此操作。我可以选择对象来更改“模式”,但我无法更改 ButtonGroup 上选定的 JRadio Button。 我搜索了一段时间(因为 setSelected() 不起作用)。我知道 ButtonGroup 一次只能选择一个按钮。我怎么能取消选择当前的并选择我需要的(第一个)。 感谢您的任何建议。

【问题讨论】:

  • 使用isSelected();,它会说出你RadioButton的状态,如果你在循环中使用它,你可以知道选择了哪一个。

标签: java jbutton jradiobutton


【解决方案1】:

来自文档:

public void setSelected(boolean b)

设置按钮的状态。注意这个方法不会触发 一个动作事件。调用 doClick 以执行程序化操作更改。

这里提到使用:

radioBtn.doClick();

【讨论】:

  • 我遇到了一些困难,因为我的 radioBtn 没有名称(通过方法创建并立即添加到 jFrame)。我为每个按钮命名并使用 radioBtn.doClick(1) 单击第一个按钮(我需要的那个)。谢谢。
【解决方案2】:

我创建了一个小方法,允许我设置任何单选组按钮。如果您不想将 if 用于任何单选按钮,则非常方便。

public void setButtonGroup(int rdValue, Enumeration elements ){
    while (elements.hasMoreElements()){
        AbstractButton button = (AbstractButton)elements.nextElement();
        if(Integer.parseInt(button.getActionCommand())==rdValue){
            button.setSelected(true);
        }
    }
}

然后

setButtonGroup(yourValue, yourButtonGroup.getElements());

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 2015-06-15
    • 1970-01-01
    • 2017-05-09
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    相关资源
    最近更新 更多