有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Netbeans中如何将Getter方法从main调用到Jframe?

我被困在我想做的这段代码上了。我有一个在Netbeans中工作的程序,它有一个主java表单和一个类似弹出窗口的JFrame。框架有一个按钮,它打印我在主框架中的Getter方法中输入的值。一旦我运行程序并单击按钮,程序就会崩溃,我得到的结果如下:

"Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: 
empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)"

这是我的主代码:`

    public void Iva(){

    float tiv = Float.parseFloat(tiva);     // tiva is a global, String type variable

    if("Papeleria".equals(tiva)){

        iva = (float) (tiv*0.16);      // iva is a global Float type variable 

    }

    if("Supermercado".equals(tiva)){
         iva = (float) (tiv*0.12);
    }

    if("Supermercado".equals(tiva)){

         iva = (float) (tiv*0.14);
    }
    ivi = Float.toString(iva);     // ivi is a global, String type variable
}

public String getIva() {
    Iva();
    return ivi;
}

这就是我在画面中所做的动作:

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

    /*taiva is the text area where i want to show iva
    mainy is what i called the main's class*/

    taiva.setText(mainy.getIva()); 
}    

共 (1) 个答案

  1. # 1 楼答案

    您的程序在以下代码行失败:

    float tiv = Float.parseFloat(tiva);     // tiva is a global, String type variable
    

    您正试图解析一个空字符串(tiva),这将导致NumberFormatException

    通过使用if语句可以避免此问题,如下所示:

    float tiv = 0;
    if (!tiva.isEmpty()) {
      tiv = Float.parseFloat(tiva);
    } else {
      tiv = 0;
    }
    

    希望这有帮助;)