Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过单击另一个带有setSelected事件的切换按钮来更改切换按钮的状态_Java_Button_Calculator - Fatal编程技术网

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

Java 通过单击另一个带有setSelected事件的切换按钮来更改切换按钮的状态,java,button,calculator,Java,Button,Calculator,我想通过单击另一个切换按钮来更改切换按钮的状态。我的代码不是那样工作的。该部分存在一个问题: private void jToggleButton12ActionPerformed(java.awt.event.ActionEvent evt) { processValue("+"); if(values.contains("+")) jTogg

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

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

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

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

代码应该是这样的:

ButtonGroup group = new ButtonGroup();

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

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

我想您希望实现单选按钮的功能,即一次只选择一个按钮。为了实现这一点,我建议您使用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);
}

我需要像jToggleButton.setSelected(?)这样的代码;但我不能给出“?”部分的参数。关于if-else语句:if-part工作,但else-part没有按照我想要的方式工作
isSelected()返回一个布尔值,告诉您是否选择了按钮。要设置按钮的选择状态,请使用布尔值作为
setSelected()的参数
按钮组
将自动处理选择和取消选择(切换)。您只需要处理
processValue(“/”)每个按钮的方法。使用@Juvanis的答案中所示的数组可以很好地解决这个问题。通过使用此代码,我如何在我的包中创建类“JToggleButton”?@cansukartal您不需要创建该类,它是包“javax.swing.JToggleButton”中标准Java库的一部分,只是导入它。它已导入,但现在我的生成代码有问题,如果我可以在这里复制我的全部代码,也许你可以更容易理解问题。我如何向你展示我的全部代码?