📄 newapplet.java
字号:
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 + -