0

我正在尝试创建一个注册系统。我有 6 个复选框,我想要发生的事情是,如果我选中其中一个复选框并按下按钮计算,它应该为标签提供 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));
    }
}

它只显示当前值但不减去。请帮忙!

4

2 回答 2

1
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

于 2013-08-01T01:22:48.163 回答
1

为什么不只计算被点击的复选框的数量是 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));

但也许那是因为我疯了...

于 2013-08-01T01:23:43.150 回答