?? 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 + -