如何将NumberFormatException设置为标签

时间:2015-12-10 19:03:46

标签: java exception

所以我有两个方框可以输入您的数字,点击后,它会将第一个数字除以第二个,并将标签设置为答案。 (在一个完美的世界里。)

但是,你也可以写下一个字。 我得到了这个:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {
      // the String to int conversion happens here
      numberOne = Integer.parseInt(jTextField1.getText().trim());

      // print out the value after the conversion
      System.out.println("int i = " + jTextField1);
    }
    catch (NumberFormatException nfe) {
      System.out.println(nfe.getMessage() + " is not a number... ");

    }
    //numberOne = Integer.jTextField1
    answer = calc.calculateNumbers(numberOne,numberTwo);
    jLabel1.setText(answer);
}

现在我没有在控制台中收到错误消息,而是希望将(答案的)标签设置为消息。

所以,比如:jLabel.setText( ERROR MESSAGE ) 但是当我把它放进去时,我无法让它发挥作用。

提前致谢!

2 个答案:

答案 0 :(得分:2)

简单的解决方案是避免过早捕捉异常并假装它没有发生。

iPhone 6 Plus

尝试将catch放在代码之后,如果发生异常,您可以运行该代码。当你可以使用局部变量时,也要避免使用字段。

答案 1 :(得分:0)

阅读@Peter Lawrey的评论,我意识到我做了

jLabel1.setText();

两次..

看起来像这样:

catch (NumberFormatException nfe) {
      System.out.println(nfe.getMessage() + "is not a number... ");
      jLabel1.setText(nfe.getMessage());
    }
    answer = calc.calculateNumbers(numberOne,numberTwo);
    jLabel1.setText(answer);

显然我可以将jLabel的文本设置为某些东西,但我用第二个.setText()覆盖了它。..

谢谢你们!