Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从ActionListener捕获NumberFormatException_Java_Try Catch_Actionlistener_Numberformatexception - Fatal编程技术网

Java 从ActionListener捕获NumberFormatException

Java 从ActionListener捕获NumberFormatException,java,try-catch,actionlistener,numberformatexception,Java,Try Catch,Actionlistener,Numberformatexception,我想捕获NumberFormatException但我的代码有错误,因为我的程序中有TextField和一个按钮。如果在TextField中输入数字,则没有任何问题。如果您输入一封信,我想得到错误消息,但我不使用。请帮帮我 我的代码: private JTextField t1=new JTextField(10); private JButton o88 = new JButton("send"); try{ o88.addActionListener(new ActionList

我想捕获
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());
}   

您试图捕获添加操作侦听器的方法上的异常,而不是实际尝试将字符串解析为整数的方法。如果您将其包装在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
),而不是打印到控制台,并且您希望打印比异常错误消息更易于人阅读的内容