0

我想通过单击另一个切换按钮来更改切换按钮的状态。我的代码不能那样工作。那部分有问题:

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();
}                        

此代码仅选择微动按钮,当我单击它时仍处于选中状态。

4

2 回答 2

1

无需手动处理每个按钮的每个切换和取消切换,您只需将这些按钮添加到ButtonGroup

代码将是这样的:

ButtonGroup group = new ButtonGroup();

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

这将自动处理每个按钮的取消切换。现在您只需要处理每个按钮将执行的操作。

于 2013-07-19T08:00:57.177 回答
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);
}
于 2013-07-19T08:05:10.963 回答