⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newapplet.java

📁 用netbean的applet形式编写的计算器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
             if(input.equals("BackSpace")) //处理输入为Backspace             {                  String str=this.jTextField1.getText();//提取当前显示的字符串                  if(str.length()-1==0 )//长度为1                          {                           this.jTextField1.setText("0");                            setVarState();                          }                  else if(str.length()>1)//长度大于1                           this.jTextField1.setText(str.substring(0,str.length()-1));//删除最后一次输入的值                                                    else {                                                        jTextField1.setText("0");                               setVarState();                                }               }              else if(input.equals("清零")) //处理输入为"清零"                    {                                                clear0();             }               else if(input.equals("."))//处理输入小数点                {                      if(!point)//小数点没有被按下                      {	                          if(this.jTextField1.getText().equals("") || this.jTextField1.getText().equals("-"))//小数点前不是数字                              this.jTextField1.setText(this.jTextField1.getText()+0+input);//自动在前面补0                          else this.jTextField1.setText(this.jTextField1.getText()+input);//小数点前是数字,不补0                          point=true;//按下状态                       }                       else      //同一数值内输入多次小数点被忽略                                this.jTextField1.setText(this.jTextField1.getText());                 }                else if(input.equals("π")) //处理π键                 {                     if(!pi)//当前为可输入状态                     {                         this.jTextField1.setText(""+Math.PI);                         pi=true;//设置为不可输入状态                     }                     else this.jTextField1.setText(this.jTextField1.getText());                 }               else if(pi)//处理π键与其它数字键的冲突                      {                          this.jTextField1.setText(input);                          pi=false;                      }               else if(this.jTextField1.getText().equals("0")&&input.equals("0"))  //当前为0,多次按0键时被忽略                                             this.jTextField1.setText("0");                                                             else if(this.jTextField1.getText().equals("0"))    //数值前0被忽略;如"05"处理为"5"                       this.jTextField1.setText(""+input);               else  this.jTextField1.setText(this.jTextField1.getText()+input);            }          }//end of numberSign        /**此方法处理 + - * /  =  x^y按钮*/    public void CommandSign(String buttonValue)//处理 + - * / = 按钮    {        if(smP)//"说明"按钮被按下          this.jTextField1.setText("请先按\"清零\"!!"); //"清零是为了恢复程序的原始状态"        else        {        String sign=buttonValue;//保存运算符号        if(!numStart) //不是数字开始        {            if(firstSign.equals("=") && sign.equals("="))            {                result=Double.parseDouble(this.jTextField1.getText());                             calculate(xCopy,signCopy);            }            else firstSign=sign;//当前输入不为数字状态时保存运算符号                       }        else         {            try{            xCopy=Double.parseDouble(this.jTextField1.getText());            }            catch(NumberFormatException e)//处理异常             {              this.jTextField1.setText("数字格式异常");               }                        calculate(xCopy,firstSign);//对前一个运算符进行计算                signCopy=firstSign;                firstSign=sign;//保存当前所输入的运算符           setVarState();                       }      }    }//end of CommandSign        /**此方法进行相应的数值计算*/   public void calculate(double x,String s) //对前一个运算符进行相应的数值计算        {                if (s.equals("+")) result+= x;    //加法运算                else if (s.equals("-")) result-=x;//减法运算                else if (s.equals("x")) result*=x;//乘法运算                else if (s.equals("÷"))//除法运算                {                    if(x!=0)//除数不为0                    result/=x;                                    }                else if (s.equals("=")) {result=x;}//"="运算                else if(s.equals("x^y")) result=Math.pow(result,x);//幂运算                           if(s.equals("÷")&&x==0)//除数为0                     this.jTextField1.setText("除数为0无意义!!");//除数为0时输出                else isInt();              }//end of calculate      /**此方法是将所有变量设置为初始值*/   public void clear0()//清零   {    //全设置为初始值          this.jTextField1.setText("0");       setVarState();       result=0;       firstSign = "=";       xCopy=0;       signCopy=firstSign;       i=0;   }//end of clear0      /** 科学计算,如求平方,开方,立方等 */   public void calculate1(String buttonValue)//科学计算   {       try{       if(smP)          this.jTextField1.setText("请先按\"清零\"!!");        else       {                 double d=Double.parseDouble(this.jTextField1.getText());//把当前字符串型换成数值型       if(buttonValue.equals("平方"))//开方运算       {           result=Math.pow(d, 2);           isInt();       }       else if(buttonValue.equals("立方"))//立方运算       {           result=Math.pow(d,3);           isInt();       }       else if(buttonValue.equals("开方"))//平方根运算                if(d<0)//如果当前数值为负数时将报错错                    this.jTextField1.setText("负数不能开方");                else {                       //当前数值为>0,可运算                       result=Math.sqrt(d);                       isInt();                     }       else if(buttonValue.equals("1/x"))//求倒数       {           if(d!=0)//除数不为0           {           result=1/d;           isInt();//控制结果数值类型           }           else                this.jTextField1.setText("除数为0无意义!!");       }       setVarState();    }  }catch(NumberFormatException e)//处理异常     {              this.jTextField1.setText("数字格式异常");              setVarState();     }   }//end of calculate1      /**此方法处理记忆键*/   public void remmenberResult()//处理记忆键   {       if((int)lastResult==lastResult)                   //控制数值类型           this.jTextField1.setText(""+ (int)lastResult);//显示记忆结果       else this.jTextField1.setText(""+ lastResult);       result=lastResult;   }//end of remmenberResult      /**此方法处理各状态标志变量*/   public void setVarState()   {       numStart=false;//恢复当前输入不为数字状态       point=false;//恢复小数点键可输入状态       pi=false;//恢复π键可输入状态       smP=false;//   }//end of setVarState      public void statement()//处理"说明"键      {        smP=true;       numStart=false;       i++;    switch(i)    {        case 1: this.jTextField1.setText("\"BackSpace\"--后退--请继续....(按\"清零\"退出)");                break;        case 2: this.jTextField1.setText("\"记忆\"--显示上次运算结果--请继续....");                break;        case 4:this.jTextField1.setText("\"x^y\"--求x的y次方--请继续....");               break;        case 3:this.jTextField1.setText("\"π\"--圆周率--请继续....");              break;        case 5:{                this.jTextField1.setText("Tusion个人作品,QQ289414885--请继续....");                i=0;               }              break;                  }   }//end of statement      /*此方法控制结果的数值类型*/   public void isInt()   {       if((int)result==result) //结果是为整数                {                                        this.jTextField1.setText(""+ (int)result);                    lastResult=(int)result;//记忆结果                }       else                    //结果不是整数                {                     this.jTextField1.setText(""+ result);//显示结果                     lastResult=result;//记忆结果                                      }   }//end of isInt      public void percentage()//处理"%"键   {     try{                    double d=Double.valueOf(this.jTextField1.getText()).doubleValue()*0.01;          isInt();          if((int)d==d)              this.jTextField1.setText(""+(int)d);          else this.jTextField1.setText(""+d);     }     catch(NumberFormatException e)//处理异常     {              this.jTextField1.setText("数字格式异常");      }    }//end of percentage} class dj {}    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -