Java 使用复选框添加值?

Java 使用复选框添加值?,java,swing,netbeans-7,Java,Swing,Netbeans 7,我正在尝试创建一个注册系统。我有6个复选框,我想做的是如果我选中其中一个复选框并按下按钮compute,它应该给标签一个2640的值。当我点击另一个复选框并再次按下按钮时,如果我点击所有6个复选框,则标签的值为5280,依此类推 如果其中一个复选框没有点击,我按下计算按钮,它应该从当前总数中减去2640。这是我的密码: if (chkPLF.isSelected() == true) { tFee = 2640; lblMis.setText(Double.toString(mi

我正在尝试创建一个注册系统。我有6个复选框,我想做的是如果我选中其中一个复选框并按下按钮compute,它应该给标签一个2640的值。当我点击另一个复选框并再次按下按钮时,如果我点击所有6个复选框,则标签的值为5280,依此类推

如果其中一个复选框没有点击,我按下计算按钮,它应该从当前总数中减去2640。这是我的密码:

if (chkPLF.isSelected() == true) {
    tFee = 2640;
    lblMis.setText(Double.toString(misFee));
    lblT.setText(Double.toString(tFee + tFee));

    if (chkPLF.isSelected() == false) {
        tFee = tFee - 2640;
        lblMis.setText(Double.toString(misFee));
        lblT.setText(Double.toString(tFee));
    }
}
if (chkSAD.isSelected() == true) {
    tFee = 2640 * 3;
    lblMis.setText(Double.toString(misFee));
    lblT.setText(Double.toString(tFee));

    if (chkSAD.isSelected() == false) {
        tFee = tFee - 2640;
        lblMis.setText(Double.toString(misFee));
        lblT.setText(Double.toString(tFee));
    }
}
它只显示当前值,不进行减法。请帮忙

double amount = 0;
int    sel = 0;
if(jCheckBox1.isSelected()) sel++;
if(jCheckBox2.isSelected()) sel++;
if(jCheckBox3.isSelected()) sel++;
if(jCheckBox4.isSelected()) sel++;
if(jCheckBox5.isSelected()) sel++;
if(jCheckBox6.isSelected()) sel++;
amount = 2640 * sel;
JOptionPane.showMessageDialog(rootPane, String.valueOf(amount));

将此代码放在“计算”中单击
ActionListener
为什么不将单击的复选框数乘以2640。现在,您似乎正在用每个复选框覆盖结果

例如

int checkCount = 0;
if (chk1.isSelected()) {
    checkCount++;
}
if (chk2.isSelected()) {
    checkCount++;
}    
if (chk3.isSelected()) {
    checkCount++;
}    
if (chk4.isSelected()) {
    checkCount++;
}    
if (chk5.isSelected()) {
    checkCount++;
}    
if (chk6.isSelected()) {
    checkCount++;
}

tFee = 2640 * checkCount;
lblMis.setText(Double.toString(misFee));
lblT.setText(Double.toString(tFee));
现在,我要去,这可以更容易地完成一个循环

JCheckBox[] boxes = new JCheckBox[]{chk1, chk2, chk3, chk4, chk5, chk6};
tFee = 0;
for (JCheckBox box : boxes) {
    if (box.isSelected()) {
        tFee += 2640;
    }
}
lblMis.setText(Double.toString(misFee));
lblT.setText(Double.toString(tFee));

但也许那是因为我疯了…

为什么,为什么你要在IF语句中比较True==True或True==False?为什么不把点击的复选框数乘以2640。现在,您似乎要用每个复选框覆盖结果…+1表示该想法,尽管我建议在if语句周围使用大括号,因为它可以防止可能出现的问题-但这只是me@MadProgrammer是的,我也是,但这只是一个快速代码,用来展示算法。无论如何,供将来参考:单行代码不需要大括号。另一方面,多行是必要的。我提出这个问题的唯一原因是,我们往往会看到逻辑错误,因为人们要么放错了大括号,要么放错了分号:P.@MadProgrammer。