版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
packagecom.haha;importjava.awt.Color;importjava。awt。event.MouseAdapter;importjava.awt。event。MouseEvent;importjava。awt.event。MouseListener;importjavax.swing.JButton;importjavax.swing。JFrame;importjavax.swing。JPanel;importjavax。swing。JTextField;publicclassJiSuanQiextendsMouseAdapterimplementsMouseListener{ publicStringnum1="",num2="",opr=””,res=””; publicBooleanisOpr=false;// publicBooleanisDian1=false; publicBooleanisDian2=false; publicJTextFieldjf=newJTextField(”0”); publicJPaneljp1=newJPanel(); publicJFramef; publicJButtonc=newJButton(”c”);//清空按鈕 publicJButtond=newJButton("<-——”);//刪除.. publicJButton[][]b={{newJButton("7"),newJButton("8"),newJButton("9"),newJButton("+”)}, {newJButton("4"),newJButton("5"),newJButton(”6”),newJButton("—”)}, {newJButton(”1"),newJButton("2”),newJButton(”3”),newJButton(”*”)}, {newJButton(”0"),newJButton("?!?,newJButton(”="),newJButton("/”)}};////聲明并初始化按鈕數(shù)組,存放數(shù)字和操作符 JiSuanQi(){ initFrame(); } publicvoidinitFrame(){///繪制屏幕 f=newJFrame("計算器”); f.setBounds(600,200,250,350); f。setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE);//關(guān)閉窗口 f.setResizable(false); f。setVisible(true); f.setLayout(null); f.add(jf); jf。setEditable(false); jf.setBounds(0,0,250,50); jf.setBackground(Color.red); buttonPos(); addButtonListener(); } publicvoidbuttonPos(){//添加按鈕 intx=15,y=100; f。add(c); c。setBounds(180,55,50,40); f.add(d); d.setBounds(120,55,55,40); for(inti=0;i〈4;i++){ for(intj=0;j〈4;j++){ f。add(b[i][j]); b[i][j]。setBounds(x,y,50,40); x+=55; } x=15; y+=42; } } publicvoidaddButtonListener(){//事件注冊 c.addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEvente){ evectDo(e); } }); d。addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEvente){ evectDo(e); } }); for(inti=0;i〈4;i++){ for(intj=0;j<4;j++){ b[i][j].addMouseListener(newMouseAdapter(){ publicvoidmouseClicked(MouseEvente){ evectDo(e); } }); } } } publicvoidevectDo(MouseEvente){//事件處理程序 if(e。getSource()==d){// if(isOpr){ if(!num2。equals(””)){ num2=num2.substring(0,num2.length()-1); } else{ opr=”"; isOpr=false; } } else{ if(!num1。equals(”")){ num1=num1。substring(0,num1.length()-1); } else{ num1="”; } } disp(); } if(e.getSource()==c){// jf.setText("0"); num1=”";num2=”";opr="";res=””; isDian1=false; isDian2=false; isOpr=false; } if(e.getSource()==b[0][3]){//加 opr=b[0][3].getText(); isOpr=true; //isDian1=false; disp(); } if(e。getSource()==b[1][3]){//減 opr=b[1][3].getText(); isOpr=true; disp(); } if(e。getSource()==b[2][3]){//乘 opr=b[2][3]。getText(); isOpr=true; disp(); } if(e.getSource()==b[3][3]){//除 opr=b[3][3]。getText(); isOpr=true; disp(); } if(e.getSource()==b[3][2]){//等號 if(num1.indexOf(".”)==—1&&num2.indexOf(”。”)==—1){ jisuanInt(); } else{ jisuanFloat(); } if(!(num1。indexOf("。")==-1)){///////////////小數(shù)點 isDian1=true; } isDian2=false; } if(e.getSource()==b[0][0]){//獲取數(shù)字 if(!isOpr){ num1+=b[0][0].getText(); } else{ num2+=b[0][0].getText(); } disp(); } if(e.getSource()==b[0][1]){//獲取數(shù)字 if(!isOpr){ num1+=b[0][1].getText(); } else{ num2+=b[0][1].getText(); } disp(); } if(e。getSource()==b[0][2]){//獲取數(shù)字 if(!isOpr){ num1+=b[0][2]。getText(); } else{ num2+=b[0][2]。getText(); } disp(); } if(e。getSource()==b[1][0]){//獲取數(shù)字 if(!isOpr){ num1+=b[1][0].getText(); } else{ num2+=b[1][0].getText(); } disp(); } if(e.getSource()==b[1][1]){//獲取數(shù)字 if(!isOpr){ num1+=b[1][1].getText(); } else{ num2+=b[1][1].getText(); } disp(); } if(e.getSource()==b[1][2]){//獲取數(shù)字 if(!isOpr){ num1+=b[1][2].getText(); } else{ num2+=b[1][2]。getText(); } disp(); } if(e。getSource()==b[2][0]){//獲取數(shù)字 if(!isOpr){ num1+=b[2][0]。getText(); } else{ num2+=b[2][0]。getText(); } disp(); } if(e.getSource()==b[2][1]){//獲取數(shù)字 if(!isOpr){ num1+=b[2][1]。getText(); } else{ num2+=b[2][1].getText(); } disp(); } if(e.getSource()==b[2][2]){//獲取數(shù)字 if(!isOpr){ num1+=b[2][2].getText(); } else{ num2+=b[2][2].getText(); } disp(); } if(e。getSource()==b[3][0]){//獲取數(shù)字 if(!isOpr){ num1+=b[3][0]。getText(); } else{ num2+=b[3][0].getText(); } disp(); } if(e.getSource()==b[3][1]){//獲取數(shù)字"。。。。.。。.。。.。.。.。。." if(!isOpr){ if(!isDian1){ num1+=b[3][1].getText(); isDian1=true; } } else{ if(!isDian2){ num2+=b[3][1].getText(); } isDian2=true; } disp(); } } publicvoiddisp(){///////////////////////顯示結(jié)果 jf.setText(num1+opr+num2); } publicvoidjisuanInt(){///////////////////計算整數(shù) intn1,n2; if(num1.equals(””)){ n1=0; } else{ n1=Integer.parseInt(num1); } if(num2.equals(””)){ n2=0; } else{ n2=Integer。parseInt(num2); } if(opr.equals(”+”)){ res=(n1+n2)+"”; jf。setText(res); num1=res; num2=”"; opr=”"; isOpr=false; } if(opr.equals("—")){ res=(n1-n2)+""; jf.setText(res); num1=res; num2="”; opr=”"; isOpr=false; } if(opr.equals(”*")){ res=(n1*n2)+""; jf.setText(res); num1=res; num2="”; opr="”; isOpr=false; } if(opr.equals("/”)){ while(true){ if(n2==0){ jf。setText("被除數(shù)不能為零”); num1=””;num2=”";opr=””;res=””; isOpr=false; } else{ res=(((float)n1)/n2)+""; jf.setText(res); num1=res; num2=""; opr=""; isOpr=false; } break; } } } publicvoidjisuanFloat(){/////////////////////計算浮點數(shù) floatn1,n2; intnn=Math。abs(nodeNum(num1)+nodeNum(num2)); if(num1.equals(”")){ n1=0; } else{ n1=Float.parseFloat(num1); } if(num2。equals("”)){ n2=0; } else{ n2=Float。parseFloat(num2); } if(opr.equals(”+”)){ res=(n1+n2)+""; jf.setText(res); num1=res; num2=”"; opr="”; isOpr=false; } if(opr。equals(”—”)){ res=(n1—n2)+""; jf。setText(res); num1=res; num2="”; opr=”"; isOpr=false;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 濱州職業(yè)學(xué)院《服飾搭配藝術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 畢節(jié)工業(yè)職業(yè)技術(shù)學(xué)院《有機化學(xué)(上)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度智能機器人技術(shù)研發(fā)與應(yīng)用技術(shù)服務(wù)合同2篇
- 策劃服務(wù)合同書
- 購銷合同中英文版本
- 大件玩具出租合同
- 2025年新型快遞柜運營管理合同書3篇
- 建筑安裝工程專業(yè)分包合同
- 學(xué)生會體育部工作計劃15篇
- 北京語言大學(xué)《高等代數(shù)選講》2023-2024學(xué)年第一學(xué)期期末試卷
- 方大重整海航方案
- 河北省秦皇島市昌黎縣2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題
- 礦山治理專項研究報告范文
- 國家開放大學(xué)2023年7月期末統(tǒng)一試《11124流行病學(xué)》試題及答案-開放本科
- 貨運安全生產(chǎn)管理制度
- 施工圖審查招標(biāo)文件范文
- 幼兒園中班體育《我們愛運動》+課件
- 郭錫良《古代漢語》課件
- 外研版四年級英語下冊(一年級起點)全冊完整課件
- 防止電力生產(chǎn)事故的-二十五項重點要求(2023版)
- 教研室主任崗位申請書
評論
0/150
提交評論