查找异常调用者并修改以显示值

时间:2015-10-19 20:55:07

标签: java oop japplet

假设我有3个TextFields - 用于用户输入值(当程序运行时):

TextField input1 = new JTextField("00");
TextField input2 = new JTextField("00");
TextField input3 = new JTextField("00");

当用户输入值时,程序会获取这些值并将它们存储为整数(稍后进行操作):

public void actionPerformed(ActionEvent e) {

  String temp1 = input1.getText();
  String temp2 = input.getText();
  String temp3 = input3.getText();

  int num1=0, num2=0, num3=0;
  if(e.getSource() == storeButton){
      try{
          num1 = Integer.parseInt(tem1);
          num2 = Integer.parseInt(temp2);
          num3 = Integer.parseInt(temp3);
      } 
      catch(NumberFormatException ex){
          JOptionPane.showMessageDialog(null, "Input must be an integer from 0 to 50");
      }
  }
}

如上面的代码所示,当用户单击 storeButton 时,TextFields中的值将作为整数解析为特定变量,并且如果任何TextField包含除整数之外的输入,则会显示一条消息会弹出来。

问题:

调用异常时,如何清除(设置为" 0")不包含数字的TextField? 不得清除包含整数的TextField。 我可以通过在解析为整数时为每个TextField使用尝试 catch 来做到这一点,但这意味着过多的代码重复(特别是当有很多TextFields时)。

1 个答案:

答案 0 :(得分:1)

看看Character.isDigit()。你可以创建一个循环遍历每个String的子方法,并检查它是否是一个数字。 或者,您可以在String上使用正则表达式来检查它是否为数字。 这可以让你摆脱try / catch并用if / else来处理它们。