各位牛人,请问:我点击按钮时为什么总是出现异常:
这是处理代码:
 public void actionPerformed(ActionEvent e){
     double n1; 
     String s=e.getActionCommand();
     if(e.getSource()==numberButton[1]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[2]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[3]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[4]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[5]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[6]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[7]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[8]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[9]){
       double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==numberButton[0]){
      double n=Double.parseDouble(s);
      resultJTF.setText(""+n);
     }else if(e.getSource()==clearZero){
     resultJTF.setText("");
     }
     if(e.getSource()==point){
     if(d==0.)
     resultJTF.setText(e.getActionCommand());
     else
     resultJTF.setText(resultJTF.getText()+e.getActionCommand());
     d=1;
     }
     if(e.getSource()==Add){
     try{
     double n=Double.parseDouble(s);
     n=n+n;
     resultJTF.setText(""+n);
     }catch(Exception e1){}
     }else if(e.getSource()==sub){
     try{
     double n=Double.parseDouble(s);
     n=n-n;
     resultJTF.setText(""+n);
     }catch(Exception e2){}
     }else if(e.getSource()==mul){
     try{
     double n=Double.parseDouble(s);
     n=n*n;
     resultJTF.setText(""+n);
     }catch(Exception e3){}
     }else if(e.getSource()==div){
     try{
     double n=Double.parseDouble(s);
     n=n/n;
     resultJTF.setText(""+n);
     }catch(Exception e4){}
     }else if(e.getSource()==sqrt){
     double n=Double.parseDouble(s);
     try{
     n1=java.lang.Math.sqrt(n);
     resultJTF.setText(""+n1);
     }catch(Exception ee){}
     }
     else if(e.getSource()==mod){
     d=d/100;
     resultJTF.setText(""+d);
     }
     else if(e.getSource()==plus){
     d=-d;
     d=+d;
     }
     else if(e.getSource()==Pos){
     d=1/d;
     }
   }
帮忙解决一下,谢谢

解决方案 »

  1.   

    看到这种代码就想打人,你不会用switch吗?
      

  2.   

    Lz尝试下用for语句和switch语句,会简洁好多好多、说不定错误也没了~
      

  3.   

     LZ 你用Switch 是不错的选择
       代码也有写相应的注释啊,这可读性是很重要的
      
      

  4.   

    都说要用switch。你们看清楚
    e.getSource()==numberButton[1]
    能用switch么?楼主,你就把异常或者现象还有出错的代码贴出来,也许明眼人一看就知道怎么回事。
      

  5.   

    设置一个ActionCommand  然后在用switch来做判断。。清楚多了。。
      

  6.   

    e.getActionCommand();看看这个地方取到值了吗