JTextField

时间:2016-05-13 12:36:04

标签: java jtextfield parseint

我想使用Java上的keyPressed事件计算在支付特定价格时返回的值。这段代码:

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

}                                 

我有错误的计算输出和错误:

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

1 个答案:

答案 0 :(得分:1)

你的getText()方法返回空字符串。

在解析之前,请考虑检查字符串是否为数字。 How to check if a String is numeric in Java

试试这个:

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