2013-12-21 58 views
1

我想趕上NumberFormatException但我的代碼有錯誤,因爲我有TextField和我的程序中的一個按鈕。如果您在TextField中輸入號碼,則沒有任何問題。如果你輸入一個字母,我想得到錯誤信息,但我不使用。請幫幫我?從ActionListener捕獲NumberFormatException

我的代碼:

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()); 
} 

回答

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),而而不是打印到控制檯上,並且您希望打印出更多人可讀的內容,然後是異常錯誤消息。