使用文本字段中的值来使用if / else

时间:2017-06-19 01:07:30

标签: java netbeans

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
  Double NumEmpilhador;      
  Double TamanhoFonte;
  Double TempoEmpilhador;
  Double ResultadoEmpilhador;

         NumEmpilhador = Double.parseDouble(NumeroEmp1.getText());
         TamanhoFonte = Double.parseDouble(ValorEmpilhador.getText());
         TempoEmpilhador = Double.parseDouble(OperaçãoEmp1.getText());

         if(NumEmpilhador==0){
                EmpilhadorFinal1.setText("0");
         }
         else{
            ResultadoEmpilhador=(NumEmpilhador*TamanhoFonte*TempoEmpilhador)/24; 
            EmpilhadorFinal1.setText(ResultadoEmpilhador + "W");
         }
}      

我想当textfield的值是" 0"将数字放在" 0"在jlabel中,如果值不是" 0"做数学运算。 但是,在数学运算的一部分(当值不同于" 0")运行良好,但是当它等于" 0"该程序给我们一个错误。 我该如何解决这个问题?如果它可以用一个实际的例子表示感谢,我还处于java的初始阶段。

这是我得到的错误:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecima‌​l.java:1842)
    at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:11‌​0)
    at java.lang.Double.parseDouble(Double.java:538)
    at tese4.Camara1a3.jButton2ActionPerformed(Camara1a3.java:6499)

我试过这个:if (NumeroEmp1.getText().equals(0))并且这个:if (NumeroEmp1.getText().equals("0"))。它仍然无效。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您已调试过代码,则会发现错误出现在

TamanhoFonte = Double.parseDouble(ValorEmpilhador.getText());

这一行和下一行尝试获取文本并将其转换为double值,但这些字段为空。所以,你得到一个NumberFormatException

如果您对该TextFields中键入的内容不感兴趣,我建议您删除这些行。

答案 1 :(得分:0)

我认为这应该有效:

    if (NumeroEmp1.getText().isEmpty()) {
        // user did not enter a number
    } else {
        // we’ve got a number, proces it
    }

消息empty String告诉您,您尝试解析的字符串为空(换句话说,它是"")。

您可能还想了解用户输入内容的情况,但这不是有效的双号。您可以使用try - catch块。