从ActionListener捕获NumberFormatException

时间:2013-12-21 21:17:08

标签: java try-catch actionlistener numberformatexception

我想抓住NumberFormatException,但我的代码有错误,因为我的程序中有TextField和一个按钮。如果您在TextField中输入数字,则没有任何问题。如果你输入一封信,我想收到错误信息,但我不使用。请帮帮我?

我的代码:

private  JTextField t1=new JTextField(10);
private  JButton o88 = new JButton("send");

try{
   o88.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent e) {
           int a = 0;
           a = Integer.parseInt(t1.getText()); 
       }
   });
}
catch (NumberFormatException e){
    System.out.println( e.getMessage());
}   

1 个答案:

答案 0 :(得分:3)

您试图捕获添加动作侦听器的方法的异常,而不是实际尝试将字符串解析为整数的方法。如果你将它包装在try / catch块中,那么它应该按预期工作:

o88.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent e) {
           try {
               int a = 0;
               a = Integer.parseInt(t1.getText());
           }
           catch(NumberFormatException ex) {
               System.out.println( e.getMessage());
           } 
       }
});

请注意,如果这是一个真实世界的程序,你会想要弹出一个对话框(可能使用JOptionPane)而不是打印到控制台,你会想要打印更人性化的东西然后异常错误消息。