通过使用setSelected事件单击另一个切换按钮来更改切换按钮的状态

时间:2013-07-19 07:56:15

标签: java button calculator

我想通过点击另一个切换按钮来更改我的切换按钮的状态。我的代码不会那样工作。该部分存在问题:

private void jToggleButton12ActionPerformed(java.awt.event.ActionEvent evt) {                                                
        processValue("+");
        if(values.contains("+"))
            jToggleButton12.setSelected(true);
        else
            jToggleButton12.isSelected();
    }

private void jToggleButton13ActionPerformed(java.awt.event.ActionEvent evt) {                                                
    processValue("-");
    if(values.contains("-"))
        jToggleButton13.setSelected(true);
    else
        jToggleButton13.isSelected();
}                                               

private void jToggleButton14ActionPerformed(java.awt.event.ActionEvent evt) {                                                
    processValue("*");
    if(values.contains("*"))
        jToggleButton14.setSelected(true);
    else
        jToggleButton14.isSelected();
}                                               

private void jToggleButton15ActionPerformed(java.awt.event.ActionEvent evt) {                                                
    processValue("/");
    if(values.contains("/"))
        jToggleButton15.setSelected(true);
    else
        jToggleButton15.isSelected();
}                        

此代码仅选择joggle按钮,当我单击它时仍然选中它。

2 个答案:

答案 0 :(得分:1)

您可以将这些按钮添加到ButtonGroup

,而不是手动处理每个按钮的每个切换和取消切换。

代码就是这样:

ButtonGroup group = new ButtonGroup();

group.add(jToggleButton1);
group.add(jToggleButton2);
group.add(jToggleButton3);
//...etc

这将自动处理每个按钮的取消切换。现在你只需要处理每个按钮的功能。

答案 1 :(得分:0)

我想你想要实现单选按钮的行为,即一次只选择一个。为实现这一点,我建议您使用JToggleButton实例的数组。执行操作时,迭代此数组并取消选中所有按钮,然后根据您的具体情况设置特定按钮。

JToggleButton[] buttons = new JToggleButton[5];
...
private void actionPerformed(java.awt.event.ActionEvent evt) 
{                                                
        processValue("+");

        for(JToggleButton b: buttons)
           b.setSelected(false);
        if(values.contains("+"))
            jToggleButton12.setSelected(true);
}