如何在 Netbeans 中将 Getter 方法从主调用到我的 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;
}

这就是 Ive 在帧中执行的动作:

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()); 
}    

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

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;
}

希望这对;)有所帮助

最新更新