【问题标题】:How to include and exclude checkboxes from being calculated? Netbeans IDE如何在计算中包含和排除复选框? Netbeans IDE
【发布时间】:2014-12-16 20:05:30
【问题描述】:

我想知道是否有一种方法可以编写一个有 6 个复选框的代码,并且我想将它们计算为最终总和,我想编写它以仅将选定的复选框包含在计算中。我问过我的老师,我得到的只是我们在课堂上做的废话,但不,我们没有,他给我发了这个代码来使用,但它不排除复选框,它是全有或全无。

    private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
if (jCheckBox1.isSelected() == true) {jCheckBox1.setText("50");}
    }                                          

    private void jCheckBox2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
if (jCheckBox2.isSelected() == true) {jCheckBox2.setText("50");}
    }                                          

    private void jCheckBox3ActionPerformed(java.awt.event.ActionEvent evt) {                                           
if (jCheckBox3.isSelected() == true) {jCheckBox3.setText("50");}

    }                                          

    private void jCheckBox4ActionPerformed(java.awt.event.ActionEvent evt) {                                           
if (jCheckBox4.isSelected() == true) {jCheckBox4.setText("50");}
    }                                          

    private void jCheckBox5ActionPerformed(java.awt.event.ActionEvent evt) {                                           
if (jCheckBox5.isSelected() == true) {jCheckBox5.setText("50");}
    }                                          

    private void jCheckBox6ActionPerformed(java.awt.event.ActionEvent evt) {                                           
if (jCheckBox6.isSelected() == true) {jCheckBox6.setText("50");}
    }                

然后他告诉我要声明变量,所以我按照他在这段代码中告诉我的做了

double Box1, Box2, Box3, Box4, Box5, Box6;
Box1 = Double.parseDouble(jCheckBox1.getText());
Box2 = Double.parseDouble(jCheckBox2.getText());
Box3 = Double.parseDouble(jCheckBox3.getText());
Box4 = Double.parseDouble(jCheckBox4.getText());
Box5 = Double.parseDouble(jCheckBox5.getText());
Box6 = Double.parseDouble(jCheckBox6.getText());
sum = Box1+Box2+Box3+Box4+Box5+Box6; 

我尝试使用几个选定的框将其放入下一个表单,但我得到的只是一个巨大的红色错误,这让我很沮丧。

【问题讨论】:

    标签: java swing netbeans checkbox


    【解决方案1】:

    看,您正在定义案例 --- 如果已选择 checkboxes,但如果未选择它们怎么办!这些可能会根据您的底部代码选择一些垃圾值!

    因此,您最好在每个 if 语句中提供一个 else 语句。此外,无需为每个复选框编写 actionPerformed()!即使使用单个 JButton 也可以实现。否则,您将遇到一些问题,例如如何设置默认值等等!

    你可以试试这个。我想它会很好用。 :-

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
      Double cb1,cb2,cb3,cb4,cb5,cb6;
      Double total=0d;
      if (jCheckBox1.isSelected() == true) {jCheckBox1.setText("50");}
       else jCheckBox1.setText("");
      if (jCheckBox2.isSelected() == true) {jCheckBox2.setText("50");}
       else jCheckBox2.setText("");
      if (jCheckBox3.isSelected() == true) {jCheckBox3.setText("50");}
       else jCheckBox3.setText("");
      if (jCheckBox4.isSelected() == true) {jCheckBox4.setText("50");}
       else jCheckBox4.setText("");
      if (jCheckBox5.isSelected() == true) {jCheckBox5.setText("50");}
       else jCheckBox5.setText("");
      if (jCheckBox6.isSelected() == true) {jCheckBox6.setText("50");}
       else jCheckBox6.setText("");
      cb1=Double.parseDouble((jCheckBox1.getText().equals(""))?"0":"50");
      cb2=Double.parseDouble((jCheckBox2.getText().equals(""))?"0":"50");
      cb3=Double.parseDouble((jCheckBox3.getText().equals(""))?"0":"50");
      cb4=Double.parseDouble((jCheckBox4.getText().equals(""))?"0":"50");
      cb5=Double.parseDouble((jCheckBox5.getText().equals(""))?"0":"50");
      cb6=Double.parseDouble((jCheckBox6.getText().equals(""))?"0":"50");
      total=cb1+cb2+cb3+cb4+cb5+cb6;
      jLabel1.setText("The total comes out to be :- "+total);    
    }        
    

    【讨论】:

    • 非常感谢,你救了我的命!!
    • 如果我希望总数以另一种形式出现在标签中,我该怎么办?
    • 只需将结果作为字符串传递给新 JFrame 中的另一个类!
    • 谢谢,我会想办法解决的
    【解决方案2】:

    在你的 Ifs 中使用 else,如果没有被选中,则将文本设置为“0”。

    此外,当您初始化复选框时,将默认文本设置为“0”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-28
      • 2017-07-18
      • 1970-01-01
      • 2012-04-19
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      相关资源
      最近更新 更多