Java 混淆复选框问题
我有两个复选框和两个计数器。。。计数器1统计使用以下代码选中的复选框数Java 混淆复选框问题,java,checkbox,Java,Checkbox,我有两个复选框和两个计数器。。。计数器1统计使用以下代码选中的复选框数 if (isChecked) { counter++; } else { counter--; } 这就像一个符咒,但现在我希望计数器2跟踪属于绿色组的复选框。。。例如,复选框1、2、4和7属于绿色组,而复选框3、5、6、8不属于绿色组 if (chk1.isChecked() || chk2.isChecked() || chk4.isChecked() || chk7.isChecked()) {
if (isChecked) {
counter++;
} else {
counter--;
}
这就像一个符咒,但现在我希望计数器2跟踪属于绿色组的复选框。。。例如,复选框1、2、4和7属于绿色组,而复选框3、5、6、8不属于绿色组
if (chk1.isChecked() || chk2.isChecked() || chk4.isChecked() || chk7.isChecked()) {
counter2++;
}
我尝试使用另一个if-else来查看绿色组中有多少被检查
但是当我使用
System.out.println(counter2);
然后我总是得到counter1的值。
为什么会这样?是因为counter1检查所有复选框并否决counter2吗
实用方法
private boolean isGreen(Checkbox chk)
{
// return true is checkbox is green
}
实用方法
private boolean isGreen(Checkbox chk)
{
// return true is checkbox is green
}
如上所述,在注释中,如果选中了任何复选框,请选中一次。如果计数器2始终显示与计数器1相同的值,则可能是由于简单的输入错误或其他原因。不看代码就说不出来。但是一个变量不能仅仅否决另一个变量。你使用的是Swingandjcheckbox吗?如果是这样的话,如果您还没有ItemListener,您可以向其中添加ItemListener。然后可以动态更新计数器以反映复选框的当前状态。itemStateChanged方法的代码可能如下所示:
您可以为绿色组使用不同的ItemListener,这会另外设置计数器2。这将使您从所有的迭代检查中解脱出来。如上注释中所述,如果选中了任何一个框,您将只检查一次。如果计数器2始终显示与计数器1相同的值,则可能是由于简单的输入错误或其他原因。不看代码就说不出来。但是一个变量不能仅仅否决另一个变量。你使用的是Swingandjcheckbox吗?如果是这样的话,如果您还没有ItemListener,您可以向其中添加ItemListener。然后可以动态更新计数器以反映复选框的当前状态。itemStateChanged方法的代码可能如下所示:
您可以为绿色组使用不同的ItemListener,这会另外设置计数器2。这将使您从所有的迭代检查中解放出来。带“counter2”的代码在哪里?@Dunk使用此if子句,如果选中了这些复选框中的任何一个,您将增加counter2一次,而不是为每个复选框。。。将一种类型的所有复选框放在一个列表中,对其进行迭代,如果选中复选框,则增加计数器2。这里没有足够的内容。为什么不显示所有代码?带“counter2”的代码在哪里?@Dunk使用此if子句,如果选中了这些复选框中的任何一个,您将增加counter2一次,而不是为每个复选框增加一次。。。将一种类型的所有复选框放在一个列表中,对其进行迭代,如果选中复选框,则增加计数器2。这里没有足够的内容。为什么不显示所有代码?
public void itemStateChanged(ItemEvent arg0) {
if (arg0.getStateChange() == ItemEvent.DESELECTED) {
counter--;
} else {
counter++;
}
// update label or something
}