繁体   English   中英

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

[英]change state of toggle button by clicking another toggle button with setSelected event

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

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

代码如下所示:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM