我先声明了一个变量:
String Tage = new String (txtAge.getText());
然后在程序里有这样一段代码
if {
try {
Tage = Tage.trim(); Integer.parseInt(Tage);
btnOk.setEnabled(false); } catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "请输入正确的年龄格式!");
btnOk.setEnabled(true);
}
else {
…………
}
我目的是判断文本框在红输入的字符是否为数字,如果输入的不是数字的话提示输入正确的年龄格式,然后输入数字以后,因为涉及到了字符串转换为整型,就一定会报出异常
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
如何解决呢?
}

解决方案 »

  1.   

    1、用正则表达式
    2、直接捕获异常try{
    Integer.parseInt(Tage);
    }catch(Exception e){
    ...捕获到异常说明输入的不是数字格式,这里做处理
    }
      

  2.   

    int age = 0;
    try
    {
    age = Integer.parseInt(txtAge.getText().trim());
    btnOk.setEnabled(false);
    }
    catch(NumberFormatException ex)
    {
    JOptionPane.showMessageDialog(null, "请输入正确的年龄格式!");
    btnOk.setEnabled(true);
    }
      

  3.   

    String Tage = new String (txtAge.getText());
    if(Tage..matches("\\d+")) {
    Integer.parseInt(Tage);
    btnOk.setEnabled(false);
    } else {
    .....
    }
      

  4.   

    我先声明了一个变量:
    String Tage = new String (txtAge.getText());这个不是变量吧,应该是String类型的一个引用。