import javax.swing.*;
import javax.swing.*;
public class Sum 

public static void main(String[] args)
{
try{  int a=Integer.parseInt(JOptionPane.showInputDialog("请输入一个数a"));
               int b=Integer.parseInt(JOptionPane.showInputDialog("请输入一个数b"));
      int sum=a+b;
  JOptionPane.showMessageDialog(null,"sum="+sum,"",JOptionPane.INFORMATION_MESSAGE);
            }
        catch(NumberFormatException e)
  {  
            JOptionPane.showMessageDialog(null,"你输入错误,必须是数字!","Error",JOptionPane.ERROR_MESSAGE);
  } 
            System.exit(1);
        }  
}问题:当我输入a或b不是数字时,就产生错误提示,此异常已解决
但是当我输入数并不按那个弹出来的输入对话框中的"确定"按钮,而是选择按输入对话框中的"取消"按钮时,为何会发生异常?此异常如何解决?我希望按那个"取消"按钮时,就是仅起到取消输入数据的作用,而那个输入对话框还在显示,只是那输入栏的内容清空而已!  这个如何实现的?难道这个输入对话框中的取消按钮是多余的而没有用不成??????

解决方案 »

  1.   

    我想是因为你按撤消,和你不进行任何输入按确定一样,返回NULL....返回null就不是数,就有异常啦
      

  2.   

    import javax.swing.*;
    import javax.swing.*;public class Sum {
        public static void main(String[] args) {
            int[] adnd = new int[2];
            char[] desc = { 'a', 'b' };        for (int i = 0; i < adnd.length; i++) {
                while (true) {
                    String s = JOptionPane.showInputDialog("请输入一个数" + desc[i]);
                    if (s != null) {
                        try {
                            adnd[i] = Integer.parseInt(s);
                            break;
                        } catch (NumberFormatException nfe) {
                            JOptionPane.showMessageDialog(null, "你输入错误,必须是数字!",
                                    "Error", JOptionPane.ERROR_MESSAGE);
                        }
                    }
                }
            }
            int sum = adnd[0] + adnd[1];
            JOptionPane.showMessageDialog(null, "sum=" + sum, "",
                    JOptionPane.INFORMATION_MESSAGE);    }
    }