




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄一 緒論 4二 設(shè)計(jì)思路 42.1 工作原理圖 . .42.2 功能規(guī)劃 .5三 具體實(shí)現(xiàn) 53.1 類設(shè)計(jì)與功能實(shí)現(xiàn).53.2 界面 .5四 運(yùn)行調(diào)試與分析討論 94.1 運(yùn)行屏幕截圖與分析 .94.2 改進(jìn)想法 .12五 設(shè)計(jì)體會(huì)與小結(jié) 12六 參考文獻(xiàn)12七 附錄 13一 題目?jī)?nèi)容及要求:我選擇的是“復(fù)雜計(jì)算器的設(shè)計(jì)”,其目的主要是因?yàn)閣indows里有計(jì)算器,可以參照那個(gè)模板,并且對(duì)界面很熟悉,做起來(lái)更得心應(yīng)手。其次,我對(duì)鏈接數(shù)據(jù)庫(kù)還不太熟練,計(jì)算器可以由代碼直接生成,更符合我的知識(shí)水平。設(shè)計(jì)一個(gè)圖形界面(gui)的復(fù)雜計(jì)算器應(yīng)用程序,其組件包括09,+、-、*、/、c=按鈕,顯示
2、屏文本行和菜單。其功能完成簡(jiǎn)單的加法、減法、乘法、除法算術(shù)運(yùn)算,具有進(jìn)制轉(zhuǎn)換功能,能關(guān)閉窗口,點(diǎn)擊按鈕或鍵盤數(shù)字會(huì)在現(xiàn)實(shí)屏上輸出結(jié)果。在計(jì)算器的界面上小數(shù)點(diǎn)、正負(fù)號(hào)、求倒數(shù)、退格和清零按鈕要實(shí)現(xiàn)其功能練習(xí)使用布局管理器設(shè)計(jì)一個(gè)計(jì)算器的界面,并練習(xí)使用事件監(jiān)聽(tīng)器處理數(shù)據(jù)的輸入,并完成相關(guān)的計(jì)算。在我的計(jì)算器上實(shí)現(xiàn)了以上要求的基本功能,其界面參照系統(tǒng)的計(jì)算器。選中菜單項(xiàng)“查看”中的“標(biāo)準(zhǔn)型”菜單子項(xiàng),可以實(shí)現(xiàn)其加減乘除基本運(yùn)算,選中“科學(xué)型“可以實(shí)現(xiàn)進(jìn)制之間的轉(zhuǎn)換。在菜單項(xiàng)條中也設(shè)置了“編輯”,“幫助”等菜單項(xiàng),點(diǎn)擊相關(guān)按鈕可實(shí)現(xiàn)相關(guān)其功能。二 設(shè)計(jì)思路 2.1工作原理圖: 2.2功能規(guī)劃: 在本
3、程序中主要有四個(gè)類,分別是 jisuanqi , computepad ,numberbutton,operationbutton,其主類是jisuanqi。主類jisuanqi主要實(shí)現(xiàn)二,八,十 ,十六之間進(jìn)制轉(zhuǎn)換,但不能實(shí)現(xiàn)加減乘除基本運(yùn)算。computepad類,在此類中主要實(shí)現(xiàn)“查看”中的“標(biāo)準(zhǔn)型”,即實(shí)現(xiàn)十進(jìn)制的加減乘除基本運(yùn)算。在此類中記入numberbutton,operationbutton類,簡(jiǎn)化程序。在菜單條中設(shè)置了“編輯”,“查看”“幫助”等菜單項(xiàng),“編輯”中可實(shí)現(xiàn)“復(fù)制”“粘帖”功能,在“查看”中可以選擇“科學(xué)型”“標(biāo)準(zhǔn)型”在“幫助”中實(shí)現(xiàn)“關(guān)于計(jì)算器”“作者主頁(yè)”點(diǎn)擊
4、相關(guān)按鈕可實(shí)現(xiàn)相關(guān)其功能。三 具體實(shí)現(xiàn) 3.1類設(shè)計(jì)及功能實(shí)現(xiàn):(1) 主類jisuanqi,即是“查看”中的科學(xué)性,主要實(shí)現(xiàn)二,八,十,十六之間進(jìn)制轉(zhuǎn)換,但不能實(shí)現(xiàn)加減乘除基本運(yùn)算。引入的包有:package my;import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; 3.2 界面如下:圖3.1界面設(shè)計(jì)思路:創(chuàng)建容器cp,創(chuàng)建3個(gè)面板cp1,cp2,cp3并加入到cp中,三個(gè)面板按照邊緣布局,cp.add(cp1,"north"); cp.
5、add(cp2,"center"); cp.add(cp3,"south");在cp1中放置文本框,在cp2中放置進(jìn)制和c,ce,backspace按鈕,剩余的放置在cp3中。功能設(shè)計(jì)思路:先獲取點(diǎn)擊或者輸入的數(shù)字,再將其轉(zhuǎn)換成十進(jìn)制。代碼如下:int jin=10;string hex=text.gettext(); int inthex=integer.parseint(hex,jin);/先把數(shù)變?yōu)?0進(jìn)制 text.settext(convert.dechex(inthex);再將十進(jìn)制轉(zhuǎn)換成相應(yīng)進(jìn)制。代碼如下:例string strdecnum
6、 = integer.tostring(decnum); /10 for (int i = strdecnum.length(); i < 3; i+) strdecnum = "0" + strdecnum; / return strdecnum; return invert (strdecnum, 5); string strhexnum = "" /10 to 16 int currentnum = 0; while (decnum != 0) if (decnum > 15) currentnum = decnum % 16; dec
7、num /= 16; else currentnum = decnum; decnum = 0; 選中相應(yīng)的進(jìn)制后,鍵盤上數(shù)字會(huì)有相應(yīng)的顯示和隱藏,例如,在選中十進(jìn)制后,a,b,c,d,e,f就會(huì)隱藏。代碼如下: (部分) aa.setenabled(false); /a bb.setenabled(false); /b在菜單條中設(shè)置了“編輯”,“查看”“幫助”等菜單項(xiàng),“編輯”中可實(shí)現(xiàn)“復(fù)制”“粘帖”功能,在“查看”中可以選擇“科學(xué)型”“標(biāo)準(zhǔn)型”在“幫助”中實(shí)現(xiàn)“關(guān)于計(jì)算器”“作者主頁(yè)”點(diǎn)擊相關(guān)按鈕可實(shí)現(xiàn)相關(guān)其功能。代碼如下:(一部分)if(temp=copy) copycontent =
8、text.gettext(); if(temp=about) joptionpane.showmessagedialog(frame," java計(jì)算器 孫丹丹","關(guān)于計(jì)算器",joptionpane.information_message); ; if(temp=me) try process p = runtime.getruntime().exec("explorer "); catch(exception eeee) 實(shí)現(xiàn)關(guān)閉窗口函數(shù),代碼如下: class windowdestroyer extends windowada
9、pter /退出窗口動(dòng)作 public void windowclosing(windowevent e) system.exit(0); 實(shí)現(xiàn)正負(fù)號(hào)的轉(zhuǎn)換:if (isnumber = true) /如果當(dāng)前字符串首字母有'-'號(hào),代表現(xiàn)在是個(gè)負(fù)數(shù),再按下時(shí),則將首符號(hào)去掉 if (s.charat(0) = '-') text.settext("");對(duì)窗體事件進(jìn)行監(jiān)聽(tīng),在監(jiān)聽(tīng)者的windowclosing方法中實(shí)現(xiàn)窗口的關(guān)閉處理。在處理窗體的“關(guān)閉”事件的監(jiān)聽(tīng)者則采用繼承windowadapter的方式。 class closew ex
10、tends windowadapter/關(guān)閉窗口功能public void windowclosing(windowevent e)system.exit(0);(2) computepad類,在此類中主要實(shí)現(xiàn)“查看”中的“標(biāo)準(zhǔn)型”,即實(shí)現(xiàn)十進(jìn)制的加減乘除基本運(yùn)算。引入的包:package my;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import my.jisuanqi.windowdestroyer;import java.util.linkedli
11、st;import java.text.numberformat;界面如下:圖3.2界面設(shè)計(jì)思路:,一開(kāi)始先把圖形界面的布局考慮好。首先是計(jì)算機(jī)顯示輸入及輸出的文本框:jtextfield field=new jtextfield(17);/定義最上面那個(gè)框,括號(hào)里的數(shù)字是框的長(zhǎng)度界面采用邊緣布局,panel.setlayout(new gridlayout(4,5);四行五列排放。設(shè)計(jì)比較簡(jiǎn)單。功能設(shè)計(jì)思路:次程序借助鏈表存儲(chǔ)數(shù)據(jù)及符號(hào)。并運(yùn)用了numberbutton類來(lái)定義按鈕上的數(shù)字,operationbutton類來(lái)定義按鈕上的符號(hào),先獲取按鈕上的數(shù)字,代碼如下:if(e.getso
12、urce() instanceof numberbutton)numberbutton b=(numberbutton)e.getsource(); if(鏈表.size()=0) int number=b.getnumber(); /獲取按鈕上的數(shù)字 鏈表.add(" "+number); resultshow.settext(" "+number); 是否按下等號(hào)=false;在鏈表中根據(jù)鏈表的長(zhǎng)度和是否按下等號(hào)來(lái)判斷是輸出數(shù)字還是進(jìn)行結(jié)算,代碼如下: else if (e.getsource()=等號(hào)按鈕)是否按下等號(hào)=true;if(鏈表.siz
13、e()=1|鏈表.size()=2) string num=(string)鏈表.getfirst();resultshow.settext(""+num);如果按下等號(hào)切鏈表長(zhǎng)度為3,則取中間的為運(yùn)算符號(hào),代碼如下:else if(鏈表.size()=3)string number1=(string)鏈表.getfirst();string number2=(string)鏈表.getlast();string 運(yùn)算符號(hào)=(string)鏈表.get(1);進(jìn)行加減乘除運(yùn)算時(shí)判斷符號(hào)類型,并返回計(jì)算后的數(shù)值。(部分代碼)if(運(yùn)算符號(hào).equals("+&quo
14、t;)n=n1+n2;else if(運(yùn)算符號(hào).equals("/") n=n1/n2;resultshow.settext(""+n); 菜單條中的設(shè)置和方法也主類一致.在實(shí)現(xiàn)“科學(xué)型”與“標(biāo)準(zhǔn)型”之間的轉(zhuǎn)換時(shí)應(yīng)用的代碼: 標(biāo)準(zhǔn)型.addactionlistener(/標(biāo)準(zhǔn)型和科學(xué)型進(jìn)行切換new actionlistener()public void actionperformed(actionevent e)/處理事件new computerpad();/生成一個(gè)科學(xué)計(jì)算機(jī)的對(duì)象 就會(huì)出現(xiàn)科學(xué)計(jì)算器的窗口exit(); (3)numberbutto
15、n,operationbutton類主要是實(shí)現(xiàn)獲取數(shù)字鍵上的數(shù)字和符號(hào)鍵上的符號(hào),并返回按鈕上的字符,用for循環(huán)直接可定義10個(gè)數(shù)字和4個(gè)運(yùn)算符號(hào),可以簡(jiǎn)化程序。for (int i=0;i<4;i+)operationbuttoni=new operationbutton(運(yùn)算符號(hào)i);operationbuttoni.addactionlistener(this);四運(yùn)行調(diào)試與分析討論 4.1 運(yùn)行屏幕截圖與分析:1.運(yùn)行主類后,進(jìn)行運(yùn)算,首先選中十進(jìn)制,并從鍵盤上輸入445后,如圖: 圖4.12.在將其轉(zhuǎn)換成十六進(jìn)制,選中十六進(jìn)制后,如圖顯示: 圖4.23.當(dāng)選中十六進(jìn)制后,鍵盤
16、上的數(shù)字全部顯示。經(jīng)計(jì)算后校對(duì)結(jié)果準(zhǔn)確。在選中八進(jìn)制后,如圖顯示: 圖4.34.經(jīng)計(jì)算后校對(duì)結(jié)果準(zhǔn)確。在選中二進(jìn)制后,如圖顯示: 圖4.45.經(jīng)計(jì)算后校對(duì)結(jié)果準(zhǔn)確。在點(diǎn)擊正負(fù)號(hào)后,如圖顯示: 圖4.56.由于原來(lái)得到的是正數(shù),點(diǎn)擊正負(fù)號(hào)后,變成負(fù)數(shù)。既主類實(shí)現(xiàn)了進(jìn)制的轉(zhuǎn)換,并且計(jì)算無(wú)誤,測(cè)試成功。點(diǎn)擊“編輯”則出現(xiàn)“復(fù)制 ”“粘帖”功能均可實(shí)現(xiàn)。當(dāng)點(diǎn)擊“幫助”后出現(xiàn)“關(guān)于計(jì)算器”和“作者主頁(yè)”,當(dāng)點(diǎn)擊“作者主頁(yè)”后,聯(lián)網(wǎng)可進(jìn)入baidu主頁(yè)。當(dāng)點(diǎn)擊“關(guān)于計(jì)算器”后,彈出對(duì)話框。如圖: 圖4.67.點(diǎn)擊“查看”下的“標(biāo)準(zhǔn)型”就可以進(jìn)入下一個(gè)十進(jìn)制計(jì)算頁(yè)面。如圖:輸入了“1.9”“+”“3”按下“
17、=”后: 圖4.78.在按下“1/x”后,顯示如圖: 圖4.89.當(dāng)點(diǎn)擊“退格”后,顯示如圖: 圖4.9當(dāng)按下“/”“0”后,則返回初值“0”。即測(cè)試成功。4.2 改進(jìn)想法:倆個(gè)計(jì)算器布局方式相同,顯示不太相同,“科學(xué)型”的比“標(biāo)準(zhǔn)型”的更好看一點(diǎn),可以改一下。在“標(biāo)準(zhǔn)型”中只能實(shí)現(xiàn)+,-,×,/和1/x運(yùn)算,可以再添加sin,cos,tan,cot等運(yùn)算,增強(qiáng)實(shí)用型。五設(shè)計(jì)體會(huì)與小結(jié)大約一個(gè)星期的編寫java程序,發(fā)現(xiàn)自己不懂的地方很多,在做這個(gè)課程設(shè)計(jì)之前,我可以獨(dú)立編寫一些小程序,還很有成就感,以為自己的java語(yǔ)言水平還可以。但是在完成這個(gè)設(shè)計(jì)的時(shí)候,我總是被一些小的,細(xì)的問(wèn)
18、題擋住前進(jìn)的步伐,讓我總是為了解決一個(gè)小問(wèn)題而花費(fèi)很長(zhǎng)的時(shí)間,甚至做到晚上二點(diǎn)多鐘,最好猛然發(fā)現(xiàn)自己缺少一個(gè)定義或者還要查閱其他的書籍才能找出解決的辦法。例如,我定義了一個(gè)鏈表,可是向里面添加?xùn)|西的時(shí)候,總是出錯(cuò),后來(lái)在上機(jī)的時(shí)候問(wèn)老師,才知道鏈表沒(méi)有初始化,這是自己的粗心造成的。我在做設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)有很多東西,我都還不知道。在做進(jìn)制轉(zhuǎn)換時(shí)不知道函數(shù)怎么寫,是我上網(wǎng)查到的,再經(jīng)過(guò)修改查到我的程序中。其實(shí)在用語(yǔ)言來(lái)編程的時(shí)候,基礎(chǔ)是一個(gè)不可缺少的知識(shí),但是往往一些核心的高層次的東西更是不可缺少。 在這次編程中,更加深我對(duì)事件監(jiān)聽(tīng),各方法的實(shí)現(xiàn)功能,還有布局方式及常用的gui標(biāo)準(zhǔn)組件更深刻的認(rèn)識(shí)
19、。同時(shí),也鞏固了數(shù)據(jù)結(jié)構(gòu)的鏈表的應(yīng)用。在經(jīng)過(guò)這次課設(shè)使我知道在設(shè)計(jì)的過(guò)程中最好學(xué)習(xí)自己解決問(wèn)題,無(wú)論是通過(guò)書籍還是網(wǎng)絡(luò),這樣可以增強(qiáng)自己解決問(wèn)題的能力,同時(shí)加強(qiáng)記憶。任意一次實(shí)踐都是在檢驗(yàn)自己學(xué)習(xí)的水平,也是強(qiáng)迫自己再提高編程水平。六參考文獻(xiàn) 1丁振凡 .java語(yǔ)言實(shí)用教程m. 北京郵電大學(xué)出版社2006.9 2丁振凡 .java語(yǔ)言實(shí)用教程實(shí)驗(yàn)指導(dǎo)m. 北京郵電大學(xué)出版社. 2006.93嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版).清華大學(xué)出版社.2008.34耿祥義.java課程設(shè)計(jì).清華大學(xué)出版社.2004.15第 10 頁(yè) 七、附錄:源程序:(主類jisuanqi)package my; /把生成
20、的所有class文件保存到一個(gè)文件夾里,便于引用。import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class jisuanqi extends jframe implements actionlistener jframe frame; jbutton deng=new jbutton("="); /定義按鈕 jbutton fu=new jbutton("+/-"); jbutton aa=new j
21、button("a"); jbutton bb=new jbutton("b"); jbutton cc=new jbutton("c"); jbutton dd=new jbutton("d"); jbutton ee=new jbutton("e"); jbutton ff=new jbutton("f"); textfield k1=new textfield(); objconversion convert = new objconversion(); jmenuit
22、em copy,paste,科學(xué)型,標(biāo)準(zhǔn)型,help,about,me; jradiobutton sixteen,ten,eight,two; jbutton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9; container cp; /容器名為cp jtextfield text; /文本條 string copycontent="" boolean clickable=true,clear=true; /控制符號(hào)位 int all=0; double qian; string fuha
23、o; int jin=10,first=1; /默認(rèn)選中十進(jìn)制 public jisuanqi() /此類的構(gòu)造函數(shù) super("計(jì)算器"); /最上面的起名為計(jì)算器setsize(400,300); setlocation(250,200); text=new jtextfield(25); /文本框最多可輸入25位數(shù)text.settext("0."); /默認(rèn)文本框?yàn)?text.sethorizontalalignment(jtextfield.right);/從右到左 jpanel cp1=new jpanel(); /設(shè)置3個(gè)面板jpanel
24、 cp2=new jpanel(); jpanel cp3=new jpanel(); cp=getcontentpane(); cp.add(cp1,"north"); /界面布局cp.add(cp2,"center"); cp.add(cp3,"south"); cp1.setlayout(new gridlayout(1,6); cp2.setlayout(new gridlayout(2,4); cp3.setlayout(new gridlayout(6,6); sixteen=new jradiobutton("
25、十六進(jìn)制"); sixteen.setvisible(true); ten=new jradiobutton("十進(jìn)制",true); ten.setvisible(true); eight=new jradiobutton("八進(jìn)制"); eight.setvisible(true); two=new jradiobutton("二進(jìn)制"); two.setvisible(true); sixteen.addactionlistener(this); /事件監(jiān)聽(tīng)者ten.addactionlistener(this); e
26、ight.addactionlistener(this); two.addactionlistener(this); buttongroup btg=new buttongroup(); btg.add(sixteen); btg.add(ten); btg.add(eight); btg.add(two); jtextfield t3=new jtextfield(25); /向各個(gè)面板中添加按鈕cp1.add(text); text.seteditable(true); text.setbackground(new color(255, 255, 255); cp2.add(sixteen
27、); cp2.add(ten); cp2.add(eight); cp2.add(two); backspace=new jbutton("backspace"); backspace.setforeground(new color(255,0,0); backspace.addactionlistener(this); ce=new jbutton("ce"); ce.setforeground(new color(255,0,0); ce.addactionlistener(this); c=new jbutton("c"); c
28、.setforeground(new color(255,0,0); c.addactionlistener(this); k1.setvisible(false); cp2.add(k1); cp2.add(backspace); cp2.add(ce); cp2.add(c); num0=new jbutton("0"); num1=new jbutton("1"); num2=new jbutton("2"); num3=new jbutton("3"); num4=new jbutton("4&q
29、uot;); num5=new jbutton("5"); num6=new jbutton("6"); num7=new jbutton("7"); num8=new jbutton("8"); num9=new jbutton("9"); cp3.add(num7); num7.addactionlistener(this); /數(shù)字事件監(jiān)聽(tīng)者,以獲取按鈕上的數(shù)字cp3.add(num8); num8.addactionlistener(this); cp3.add(num9); num9.
30、addactionlistener(this); cp3.add(num4); num4.addactionlistener(this); cp3.add(num5); num5.addactionlistener(this); cp3.add(num6); num6.addactionlistener(this); cp3.add(num1); num1.addactionlistener(this); cp3.add(num2); num2.addactionlistener(this); cp3.add(num3); num3.addactionlistener(this); cp3.a
31、dd(num0); num0.addactionlistener(this); cp3.add(fu); fu.addactionlistener(this); cp3.add(deng); deng.setforeground(new color(255,0,0); /符號(hào)事件監(jiān)聽(tīng)者deng.addactionlistener(this); cp3.add(aa); aa.addactionlistener(this); cp3.add(bb); bb.addactionlistener(this); cp3.add(cc); cc.addactionlistener(this); cp3.
32、add(dd); dd.addactionlistener(this); cp3.add(ee); ee.addactionlistener(this); cp3.add(ff); ff.addactionlistener(this); aa.setvisible(false); bb.setvisible(false); cc.setvisible(false); dd.setvisible(false); ee.setvisible(false); ff.setvisible(false); jmenubar mainmenu = new jmenubar(); /菜單條setjmenub
33、ar(mainmenu); jmenu editmenu = new jmenu("編輯"); jmenu viewmenu = new jmenu("查看"); jmenu helpmenu = new jmenu("幫助"); mainmenu.add(editmenu); mainmenu.add(viewmenu); mainmenu.add(helpmenu); copy = new jmenuitem(" 復(fù)制"); paste = new jmenuitem(" 粘貼"); key
34、stroke copyks=keystroke.getkeystroke(keyevent.vk_c,event.ctrl_mask); copy.setaccelerator(copyks);/設(shè)置退出菜單選項(xiàng)加上快捷鍵 keystroke pasteks=keystroke.getkeystroke(keyevent.vk_v,event.ctrl_mask); paste.setaccelerator(pasteks);/設(shè)置退出菜單選項(xiàng)加上快捷鍵 editmenu.add(copy); editmenu.add(paste); copy.addactionlistener(this);
35、 paste.addactionlistener(this); 標(biāo)準(zhǔn)型=new jmenuitem("標(biāo)準(zhǔn)型");科學(xué)型 = new jmenuitem(" 科學(xué)型"); viewmenu.add(標(biāo)準(zhǔn)型); viewmenu.add(科學(xué)型); 標(biāo)準(zhǔn)型.addactionlistener(/標(biāo)準(zhǔn)型和科學(xué)型進(jìn)行切換new actionlistener()public void actionperformed(actionevent e)/處理事件new computerpad();/生成一個(gè)科學(xué)計(jì)算機(jī)的對(duì)象 就會(huì)出現(xiàn)科學(xué)計(jì)算器的窗口exit();abou
36、t = new jmenuitem(" 關(guān)于計(jì)算器"); me = new jmenuitem(" 作者主頁(yè)"); helpmenu.add(about); helpmenu.add(me); about.addactionlistener(this); me.addactionlistener(this); addwindowlistener(new windowdestroyer();/結(jié)束窗口 protected void exit() / todo auto-generated method stubpublic void actionperfo
37、rmed(actionevent e) /響應(yīng)動(dòng)作代碼if(first=1) text.settext(""); first=0; /第一次把文本框0.清空 object temp = e.getsource(); sixteen.setvisible(true); ten.setvisible(true); eight.setvisible(true); two.setvisible(true); 科學(xué)型.settext(" 標(biāo)準(zhǔn)型"); 標(biāo)準(zhǔn)型.settext("科學(xué)型"); aa.setvisible(true); bb.set
38、visible(true); cc.setvisible(true); dd.setvisible(true); ee.setvisible(true); ff.setvisible(true); aa.setenabled(false); bb.setenabled(false); cc.setenabled(false); dd.setenabled(false); ee.setenabled(false); ff.setenabled(false); if(temp=copy) /點(diǎn)擊“復(fù)制“后執(zhí)行 copycontent = text.gettext(); if(temp=paste)
39、 /點(diǎn)擊“粘帖”后執(zhí)行 text.settext(text.gettext()+copycontent); if(temp=help) /打開(kāi)系統(tǒng)幫助文件 要查資料 try string filepath = "c:/" runtime.getruntime().exec("cmd.exe /c "+filepath); catch(exception eeee) system.out.println("打開(kāi)系統(tǒng)的計(jì)算器出錯(cuò)"); if(temp=about) joptionpane.showmessagedialog(frame,&
40、quot; java計(jì)算器 孫丹丹","關(guān)于計(jì)算器",joptionpane.information_message); ; if(temp=me) try process p = runtime.getruntime().exec("explorer "); catch(exception eeee) system.out.println("打開(kāi)指定網(wǎng)頁(yè)出錯(cuò)"); try if(temp=sixteen) /十六進(jìn)制轉(zhuǎn)換 string hex=text.gettext(); int inthex=integer.parse
41、int(hex,jin);/先把數(shù)變?yōu)?0進(jìn)制 text.settext(convert.dechex(inthex) ; jin=16; aa.setenabled(true); bb.setenabled(true); cc.setenabled(true); dd.setenabled(true); ee.setenabled(true); ff.setenabled(true); num2.setenabled(true); num3.setenabled(true); num4.setenabled(true); num5.setenabled(true); num6.setenab
42、led(true); num7.setenabled(true); num8.setenabled(true); num9.setenabled(true); if(temp=eight) /八進(jìn)制轉(zhuǎn)換 string oct =text.gettext(); int intoct=integer.parseint(oct,jin); text.settext(convert.decoct(intoct) ; jin=8; aa.setenabled(false); /不顯示bb.setenabled(false); cc.setenabled(false); dd.setenabled(fal
43、se); ee.setenabled(false); ff.setenabled(false); num2.setenabled(true); num3.setenabled(true); num4.setenabled(true); num5.setenabled(true); num6.setenabled(true); num7.setenabled(true); num8.setenabled(false); num9.setenabled(false); if(temp=two) string bin=text.gettext(); int intbin=integer.parsei
44、nt(bin,jin); text.settext(convert.decbin(intbin); jin=2; aa.setenabled(false); bb.setenabled(false); cc.setenabled(false); dd.setenabled(false); ee.setenabled(false); ff.setenabled(false); num2.setenabled(false); num3.setenabled(false); num4.setenabled(false); num5.setenabled(false); num6.setenabled
45、(false); num7.setenabled(false); num8.setenabled(false); num9.setenabled(false); if(temp=ten) string dec=text.gettext(); int intdec=integer.parseint(dec,jin); text.settext(intdec+""); jin=10; aa.setenabled(false); bb.setenabled(false); cc.setenabled(false); dd.setenabled(false); ee.setenab
46、led(false); ff.setenabled(false); num2.setenabled(true); num3.setenabled(true); num4.setenabled(true); num5.setenabled(true); num6.setenabled(true); num7.setenabled(true); num8.setenabled(true); num9.setenabled(true); catch(exception ee) system.out.println("轉(zhuǎn)換出錯(cuò),可能你沒(méi)有輸入任何字符"); text.settext
47、("轉(zhuǎn)換出錯(cuò)"); clear=false; if(temp=backspace) /退格 string s = text.gettext(); text.settext(""); for (int i = 0; i < s.length() - 1; i+) char a = s.charat(i); text.settext(text.gettext() + a); if (temp=ce) /還原0 text.settext("0."); clear=true; first=1; if (temp=c) text.sett
48、ext("0."); ; clear=true; first=1; if(temp=num0) if(clear=false)/判斷是否點(diǎn)擊了符號(hào)位 text.settext(""); text.settext(text.gettext()+"0"); if(temp=num1) if(clear=false) text.settext(""); text.settext(text.gettext()+"1"); clear=true;/第二次不在清空(前二句) if(temp=num2) /獲
49、取數(shù)字 if(clear=false) text.settext(""); text.settext(text.gettext()+"2"); clear=true; if(temp=num3) if(clear=false) text.settext(""); text.settext(text.gettext()+"3"); clear=true; if(temp=num4) if(clear=false) text.settext(""); text.settext(text.gettex
50、t()+"4"); clear=true; if(temp=num5) if(clear=false) text.settext(""); text.settext(text.gettext()+"5"); clear=true; if(temp=num6) if(clear=false) text.settext(""); text.settext(text.gettext()+"6"); clear=true; if(temp=num7) if(clear=false) text.sette
51、xt(""); text.settext(text.gettext()+"7"); clear=true; if(temp=num8) if(clear=false) text.settext(""); text.settext(text.gettext()+"8"); clear=true; if(temp=num9) if(clear=false) text.settext(""); text.settext(text.gettext()+"9"); clear=true
52、; if(temp=aa) text.settext(text.gettext()+"a"); if(temp=bb) text.settext(text.gettext()+"b"); if(temp=cc) text.settext(text.gettext()+"c"); if(temp=dd) text.settext(text.gettext()+"d"); if(temp=ee) text.settext(text.gettext()+"e"); if(temp=ff) text.s
53、ettext(text.gettext()+"f"); try if(temp=deng) clear=false;/要清空前一次的數(shù)據(jù) if (temp = fu) /此方法參考書中例子 boolean isnumber = true; string s = text.gettext(); for (int i = 0; i < s.length(); i+) if (! (s.charat(i) >= '0' && s.charat(i) <= '9' | s.charat(i) = '.'
54、; | s.charat(i) = '-') isnumber = false; break; if (isnumber = true) /如果當(dāng)前字符串首字母有'-'號(hào),代表現(xiàn)在是個(gè)負(fù)數(shù),再按下時(shí),則將首符號(hào)去掉 if (s.charat(0) = '-') text.settext(""); for (int i = 1; i < s.length(); i+) char a = s.charat(i); text.settext(text.gettext() + a); /如果當(dāng)前字符串第一個(gè)字符不是符號(hào),則添加一個(gè)符號(hào)在首字母處 else text.settext
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025物業(yè)智能化升級(jí)改造合同協(xié)議范本
- 機(jī)器設(shè)備融資租賃合同
- 2025影院加盟合同模板
- 水果蔬菜招標(biāo)合同范本
- 北京市房產(chǎn)贈(zèng)與合同
- 2025關(guān)于臥室翻新合同范本
- 鋼板加工承包協(xié)議書
- 2025年03月四川省達(dá)州市“達(dá)人英才”事業(yè)單位引才169人(廣州場(chǎng))筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 刀軸式刨片機(jī)類項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告
- 無(wú)汞可充電堿錳電池項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2024年中考模擬試卷道法(全國(guó)卷)
- 幼兒園高鐵小知識(shí)說(shuō)課
- 《兒童友好型城市街道空間更新設(shè)計(jì)策略研究》
- 初中歷史九年級(jí)上冊(cè)《英國(guó)的資產(chǎn)階級(jí)革命》
- DB12T 1361-2024 地?zé)嵛菜毓嗉夹g(shù)規(guī)程
- 2024年中考語(yǔ)文復(fù)習(xí):非連續(xù)性文本閱讀(含練習(xí)題及答案)
- 成人腦室外引流護(hù)理-中華護(hù)理學(xué)會(huì)團(tuán)體 標(biāo)準(zhǔn)
- 2024年出售鋁廠鋁渣合同范本
- 地方導(dǎo)游基礎(chǔ)知識(shí)電子教案 專題七 學(xué)習(xí)情境一 陜西省課時(shí)教案
- 項(xiàng)目管理工程師招聘筆試題與參考答案(某大型集團(tuán)公司)2024年
- 高中文言文實(shí)詞虛詞總集(打印版)
評(píng)論
0/150
提交評(píng)論