所以我有两个方框可以输入您的数字,点击后,它会将第一个数字除以第二个,并将标签设置为答案。 (在一个完美的世界里。)
但是,你也可以写下一个字。 我得到了这个:
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 ) 但是当我把它放进去时,我无法让它发挥作用。
提前致谢!
答案 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()覆盖了它。..
谢谢你们!