2016-05-13 9 views
0

ich den Wert berechnet werden soll zurück auf Zahlung eines bestimmten Preises keyPressed Ereignis auf Java .this Code verwendet:falscher Berechnungswert in JTextField

private void txtbyrKeyPressed(java.awt.event.KeyEvent evt) {         
    int harga = Integer.parseInt(txthrg.getText()); 
    int byr = Integer.parseInt(txtbyr.getText()); 
    int kembali = harga-byr; 

    txtkmbli.setText(String.valueOf(kembali)); 

}         

i falsche Berechnung Ausgabe und Fehler haben:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "" 
+3

Sie versuchen, einen leeren String in einen int zu konvertieren => ein Number geworfen wird. Die Fehlermeldung sagt alles. – StephaneM

Antwort

1

Ihre getText() -Methoden geben leere Strings zurück.

Überlegen Sie, Ihre Strings vor der Analyse zu überprüfen. How to check if a String is numeric in Java

Try this:

private void txtbyrKeyPressed(java.awt.event.KeyEvent evt) { 

String hargaString = txthrg.getText(); 
String byrString = txtbyr.getText(); 

if(NumberUtils.isNumber(hargaString) && NumberUtils.isNumber(byrString)) { 
    int harga = Integer.parseInt(hargaString); 
    int byr = Integer.parseInt(byrString); 
    int kembali = harga-byr; 

    txtkmbli.setText(String.valueOf(kembali)); 
} }