

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> Java編程設(shè)計(jì)論文</p><p> 題目 :java 課 程 設(shè) 計(jì)</p><p><b> 目錄</b></p><p><b> 一 緒論 4</b></p><p><b> 二 設(shè)計(jì)思路 4</b></p><
2、p> 2.1 工作原理圖 ................................................................... ...........4</p><p> 2.2 功能規(guī)劃 ...................................................................................5</p&
3、gt;<p><b> 三 具體實(shí)現(xiàn) 5</b></p><p> 3.1 類設(shè)計(jì)與功能實(shí)現(xiàn).....................................................................5</p><p> 3.2 界面 .........................................
4、..................................................5</p><p> 四 運(yùn)行調(diào)試與分析討論 9</p><p> 4.1 運(yùn)行屏幕截圖與分析 ...............................................................9</p><p> 4.2 改進(jìn)想法
5、 .................................................................................12</p><p> 五 設(shè)計(jì)體會(huì)與小結(jié) 12</p><p><b> 六 參考文獻(xiàn)12</b></p><p><b> 七 附錄 13</b>
6、;</p><p><b> 題目內(nèi)容及要求:</b></p><p> 我選擇的是“復(fù)雜計(jì)算器的設(shè)計(jì)”,其目的主要是因?yàn)閃indows里有計(jì)算器,可以參照那個(gè)模板,并且對界面很熟悉,做起來更得心應(yīng)手。其次,我對鏈接數(shù)據(jù)庫還不太熟練,計(jì)算器可以由代碼直接生成,更符合我的知識(shí)水平。</p><p> 設(shè)計(jì)一個(gè)圖形界面(GUI)的復(fù)雜計(jì)算器應(yīng)
7、用程序,其組件包括0~9,+、-、*、/、C=按鈕,顯示屏文本行和菜單。其功能完成簡單的加法、減法、乘法、除法算術(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)其功能</p><p> 練習(xí)使用布局管理器設(shè)計(jì)一個(gè)計(jì)算器的界面,并練習(xí)使用事件監(jiān)聽器處理數(shù)據(jù)的輸入,并完成相關(guān)的計(jì)算。</p><p>
8、 在我的計(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)其功能。</p><p><b> 設(shè)計(jì)思路</b></p><p><b> 2.1工作原理圖:</b&
9、gt;</p><p><b> 2.2功能規(guī)劃:</b></p><p> 在本程序中主要有四個(gè)類,分別是 Jisuanqi , Computepad ,NumberButton,OperationButton,其主類是Jisuanqi。主類Jisuanqi主要實(shí)現(xiàn)二,八,十 ,十六之間進(jìn)制轉(zhuǎn)換,但不能實(shí)現(xiàn)加減乘除基本運(yùn)算。</p><p&g
10、t; Computepad類,在此類中主要實(shí)現(xiàn)“查看”中的“標(biāo)準(zhǔn)型”,即實(shí)現(xiàn)十進(jìn)制的加減乘除基本運(yùn)算。在此類中記入NumberButton,OperationButton類,簡化程序。</p><p> 在菜單條中設(shè)置了“編輯”,“查看”“幫助”等菜單項(xiàng),“編輯”中可實(shí)現(xiàn)“復(fù)制”“粘帖”功能,在“查看”中可以選擇“科學(xué)型”“標(biāo)準(zhǔn)型”在“幫助”中實(shí)現(xiàn)“關(guān)于計(jì)算器”“作者主頁”點(diǎn)擊相關(guān)按鈕可實(shí)現(xiàn)相關(guān)其功能。<
11、;/p><p><b> 具體實(shí)現(xiàn)</b></p><p> 3.1類設(shè)計(jì)及功能實(shí)現(xiàn):</p><p> 主類Jisuanqi,即是“查看”中的科學(xué)性,主要實(shí)現(xiàn)二,八,十,十六之間進(jìn)制轉(zhuǎn)換,但不能實(shí)現(xiàn)加減乘除基本運(yùn)算。</p><p> 引入的包有:package my;</p><p>
12、import javax.swing.*; </p><p> import javax.swing.event.*; </p><p> import java.awt.*; </p><p> import java.awt.event.*;</p><p> 3.2 界面如下:</p><p><
13、b> 圖3.1</b></p><p> 界面設(shè)計(jì)思路:創(chuàng)建容器cp,創(chuàng)建3個(gè)面板cp1,cp2,cp3并加入到cp中,三個(gè)面板按照邊緣布局,cp.add(cp1,"North"); cp.add(cp2,"Center"); </p><p> cp.add(cp3,"South");在cp1中放置文本框
14、,在cp2中放置進(jìn)制和C,CE,Backspace按鈕,剩余的放置在cp3中。</p><p> 功能設(shè)計(jì)思路:先獲取點(diǎn)擊或者輸入的數(shù)字,再將其轉(zhuǎn)換成十進(jìn)制。代碼如下:</p><p> int jin=10;</p><p> String hex=text.getText(); </p><p> int inthex=Integ
15、er.parseInt(hex,jin);//先把數(shù)變?yōu)?0進(jìn)制 </p><p> text.setText(convert.decHex(inthex));</p><p> 再將十進(jìn)制轉(zhuǎn)換成相應(yīng)進(jìn)制。代碼如下:例</p><p> String strDecNum = Integer.toString(decNum); //10 </p>
16、<p> for (int i = strDecNum.length(); i < 3; i++) </p><p><b> { </b></p><p> strDecNum = "0" + strDecNum; </p><p> } // return strDecNum; </
17、p><p> return invert (strDecNum, 5); </p><p><b> }</b></p><p> String strHexNum = ""; //10 to 16 </p><p> int currentNum = 0; </p><p
18、> while (decNum != 0) </p><p><b> { </b></p><p> if (decNum > 15) </p><p><b> { </b></p><p> currentNum = decNum % 16; </p>&l
19、t;p> decNum /= 16; </p><p><b> } </b></p><p><b> else </b></p><p><b> { </b></p><p> currentNum = decNum; </p><p&
20、gt; decNum = 0; </p><p><b> }</b></p><p> 選中相應(yīng)的進(jìn)制后,鍵盤上數(shù)字會(huì)有相應(yīng)的顯示和隱藏,例如,在選中十進(jìn)制后,A,B,C,D,E,F就會(huì)隱藏。代碼如下: (部分)</p><p> aa.setEnabled(false); //A </p><p> bb.
21、setEnabled(false); //B</p><p> 在菜單條中設(shè)置了“編輯”,“查看”“幫助”等菜單項(xiàng),“編輯”中可實(shí)現(xiàn)“復(fù)制”“粘帖”功能,在“查看”中可以選擇“科學(xué)型”“標(biāo)準(zhǔn)型”在“幫助”中實(shí)現(xiàn)“關(guān)于計(jì)算器”“作者主頁”點(diǎn)擊相關(guān)按鈕可實(shí)現(xiàn)相關(guān)其功能。代碼如下:(一部分)</p><p> if(temp==copy) </p><p> { c
22、opycontent = text.getText(); </p><p><b> } </b></p><p> if(temp==about) </p><p><b> { </b></p><p> JOptionPane.showMessageDialog(frame,"
23、; Java計(jì)算器 孫丹丹","關(guān)于計(jì)算器",JOptionPane.INFORMATION_MESSAGE); ; </p><p><b> } </b></p><p> if(temp==me) </p><p><b> { </b></p><p>&
24、lt;b> try </b></p><p><b> { </b></p><p> Process p = Runtime.getRuntime().exec("explorer http://www.baidu.com"); </p><p> } catch(Exception eeee)
25、</p><p> 實(shí)現(xiàn)關(guān)閉窗口函數(shù),代碼如下:</p><p> class WindowDestroyer extends WindowAdapter </p><p> {//退出窗口動(dòng)作 </p><p> public void windowClosing(WindowEvent e) </p><p&g
26、t;<b> { </b></p><p> System.exit(0); </p><p><b> 實(shí)現(xiàn)正負(fù)號(hào)的轉(zhuǎn)換:</b></p><p> if (isNumber == true) //如果當(dāng)前字符串首字母有'-'號(hào),代表現(xiàn)在是個(gè)負(fù)數(shù),再按下時(shí),則將首符號(hào)去掉 </p>
27、<p><b> { </b></p><p> if (s.charAt(0) == '-') </p><p><b> { </b></p><p> text.setText("");</p><p> 對窗體事件進(jìn)行監(jiān)聽,在監(jiān)聽者的w
28、indowClosing方法中實(shí)現(xiàn)窗口的關(guān)閉處理。在處理窗體的“關(guān)閉”事件的監(jiān)聽者則采用繼承WindowAdapter的方式。</p><p> class closeW extends WindowAdapter//關(guān)閉窗口功能</p><p> {public void windowClosing(WindowEvent e)</p><p> {Syst
29、em.exit(0);}</p><p> Computepad類,在此類中主要實(shí)現(xiàn)“查看”中的“標(biāo)準(zhǔn)型”,即實(shí)現(xiàn)十進(jìn)制的加減乘除基本運(yùn)算。</p><p> 引入的包:package my;</p><p> import java.awt.*;</p><p> import java.awt.event.*;</p&
30、gt;<p> import javax.swing.*;</p><p> import javax.swing.border.*;</p><p> import my.Jisuanqi.WindowDestroyer;</p><p> import java.util.LinkedList;</p><p>
31、import java.text.NumberFormat;</p><p><b> 界面如下:</b></p><p><b> 圖3.2</b></p><p> 界面設(shè)計(jì)思路:,一開始先把圖形界面的布局考慮好。首先是計(jì)算機(jī)顯示輸入及輸出的文本框:JTextField field=new JTextField(
32、17);//定義最上面那個(gè)框,括號(hào)里的數(shù)字是框的長度</p><p> 界面采用邊緣布局,panel.setLayout(new GridLayout(4,5));四行五列排放。設(shè)計(jì)比較簡單。</p><p> 功能設(shè)計(jì)思路:次程序借助鏈表存儲(chǔ)數(shù)據(jù)及符號(hào)。并運(yùn)用了NumberButton類來定義按鈕上的數(shù)字,OperationButton類來定義按鈕上的符號(hào),先獲取按鈕上的數(shù)字,代碼如
33、下:</p><p> if(e.getSource() instanceof NumberButton)</p><p><b> {</b></p><p> NumberButton b=(NumberButton)e.getSource();</p><p> if(鏈表.size()==0)</p
34、><p><b> {</b></p><p> int number=b.getNumber(); //獲取按鈕上的數(shù)字</p><p> 鏈表.add(" "+number);</p><p> resultShow.setText(" "+number);<
35、;/p><p> 是否按下等號(hào)=false;</p><p> 在鏈表中根據(jù)鏈表的長度和是否按下等號(hào)來判斷是輸出數(shù)字還是進(jìn)行結(jié)算,代碼如下: else if (e.getSource()==等號(hào)按鈕)</p><p><b> {</b></p><p> 是否按下等號(hào)=true;</p>
36、;<p> if(鏈表.size()==1||鏈表.size()==2)</p><p><b> {</b></p><p> String num=(String)鏈表.getFirst();</p><p> resultShow.setText(""+num);}</p><
37、p> 如果按下等號(hào)切鏈表長度為3,則取中間的為運(yùn)算符號(hào),代碼如下:</p><p> else if(鏈表.size()==3)</p><p><b> {</b></p><p> String number1=(String)鏈表.getFirst();</p><p> String number
38、2=(String)鏈表.getLast();</p><p> String 運(yùn)算符號(hào)=(String)鏈表.get(1);</p><p> 進(jìn)行加減乘除運(yùn)算時(shí)判斷符號(hào)類型,并返回計(jì)算后的數(shù)值。(部分代碼)</p><p> if(運(yùn)算符號(hào).equals("+"))</p><p><b> {<
39、;/b></p><p><b> n=n1+n2;</b></p><p><b> }</b></p><p> else if(運(yùn)算符號(hào).equals("/"))</p><p><b> {</b></p><p&g
40、t;<b> n=n1/n2;</b></p><p><b> }</b></p><p> resultShow.setText(""+n);</p><p> 菜單條中的設(shè)置和方法也主類一致.</p><p> 在實(shí)現(xiàn)“科學(xué)型”與“標(biāo)準(zhǔn)型”之間的轉(zhuǎn)換時(shí)應(yīng)用的代碼:
41、</p><p> 標(biāo)準(zhǔn)型.addActionListener(//標(biāo)準(zhǔn)型和科學(xué)型進(jìn)行切換</p><p> new ActionListener(){</p><p> public void actionPerformed(ActionEvent e){//處理事件</p><p> new ComputerPad();//生成一
42、個(gè)科學(xué)計(jì)算機(jī)的對象 就會(huì)出現(xiàn)科學(xué)計(jì)算器的窗口</p><p><b> exit();</b></p><p> ?。?)NumberButton,OperationButton類主要是實(shí)現(xiàn)獲取數(shù)字鍵上的數(shù)字和符號(hào)鍵上的符號(hào),并返回按鈕上的字符,用for循環(huán)直接可定義10個(gè)數(shù)字和4個(gè)運(yùn)算符號(hào),可以簡化程序。</p><p> for (
43、int i=0;i<4;i++)</p><p><b> {</b></p><p> operationButton[i]=new OperationButton(運(yùn)算符號(hào)[i]);</p><p> operationButton[i].addActionListener(this);</p><p>
44、<b> }</b></p><p> 四.運(yùn)行調(diào)試與分析討論</p><p> 4.1 運(yùn)行屏幕截圖與分析:</p><p> 1.運(yùn)行主類后,進(jìn)行運(yùn)算,首先選中十進(jìn)制,并從鍵盤上輸入445后,如圖:</p><p><b> 圖4.1</b></p><p>
45、 2.在將其轉(zhuǎn)換成十六進(jìn)制,選中十六進(jìn)制后,如圖顯示:</p><p><b> 圖4.2</b></p><p> 3.當(dāng)選中十六進(jìn)制后,鍵盤上的數(shù)字全部顯示。經(jīng)計(jì)算后校對結(jié)果準(zhǔn)確。在選中八進(jìn)制后,如圖顯示:</p><p><b> 圖4.3</b></p><p> 4.經(jīng)計(jì)算后校對結(jié)
46、果準(zhǔn)確。在選中二進(jìn)制后,如圖顯示:</p><p><b> 圖4.4</b></p><p> 5.經(jīng)計(jì)算后校對結(jié)果準(zhǔn)確。在點(diǎn)擊正負(fù)號(hào)后,如圖顯示:</p><p><b> 圖4.5</b></p><p> 6.由于原來得到的是正數(shù),點(diǎn)擊正負(fù)號(hào)后,變成負(fù)數(shù)。既主類實(shí)現(xiàn)了進(jìn)制的轉(zhuǎn)換,并且
47、計(jì)算無誤,測試成功。點(diǎn)擊“編輯”則出現(xiàn)“復(fù)制 ”“粘帖”功能均可實(shí)現(xiàn)。當(dāng)點(diǎn)擊“幫助”后出現(xiàn)“關(guān)于計(jì)算器”和“作者主頁”,當(dāng)點(diǎn)擊“作者主頁”后,聯(lián)網(wǎng)可進(jìn)入baidu主頁。當(dāng)點(diǎn)擊“關(guān)于計(jì)算器”后,彈出對話框。如圖:</p><p><b> 圖4.6</b></p><p> 7.點(diǎn)擊“查看”下的“標(biāo)準(zhǔn)型”就可以進(jìn)入下一個(gè)十進(jìn)制計(jì)算頁面。如圖:輸入了“1.9”“+”“
48、3”按下“=”后:</p><p><b> 圖4.7</b></p><p> 8.在按下“1/x”后,顯示如圖:</p><p><b> 圖4.8</b></p><p> 9.當(dāng)點(diǎn)擊“退格”后,顯示如圖:</p><p><b> 圖4.9<
49、/b></p><p> 當(dāng)按下“/”“0”后,則返回初值“0”。即測試成功。</p><p><b> 4.2 改進(jìn)想法:</b></p><p> 倆個(gè)計(jì)算器布局方式相同,顯示不太相同,“科學(xué)型”的比“標(biāo)準(zhǔn)型”的更好看一點(diǎn),可以改一下。在“標(biāo)準(zhǔn)型”中只能實(shí)現(xiàn)+,-,×,/和1/x運(yùn)算,可以再添加sin,cos,tan,
50、cot等運(yùn)算,增強(qiáng)實(shí)用型。</p><p><b> 五.設(shè)計(jì)體會(huì)與小結(jié)</b></p><p> 大約一個(gè)星期的編寫JAVA程序,發(fā)現(xiàn)自己不懂的地方很多,在做這個(gè)課程設(shè)計(jì)之前,我可以獨(dú)立編寫一些小程序,還很有成就感,以為自己的java語言水平還可以。但是在完成這個(gè)設(shè)計(jì)的時(shí)候,我總是被一些小的,細(xì)的問題擋住前進(jìn)的步伐,讓我總是為了解決一個(gè)小問題而花費(fèi)很長的時(shí)間,甚
51、至做到晚上二點(diǎn)多鐘,最好猛然發(fā)現(xiàn)自己缺少一個(gè)定義或者還要查閱其他的書籍才能找出解決的辦法。例如,我定義了一個(gè)鏈表,可是向里面添加?xùn)|西的時(shí)候,總是出錯(cuò),后來在上機(jī)的時(shí)候問老師,才知道鏈表沒有初始化,這是自己的粗心造成的。我在做設(shè)計(jì)的過程中發(fā)現(xiàn)有很多東西,我都還不知道。在做進(jìn)制轉(zhuǎn)換時(shí)不知道函數(shù)怎么寫,是我上網(wǎng)查到的,再經(jīng)過修改查到我的程序中。其實(shí)在用語言來編程的時(shí)候,基礎(chǔ)是一個(gè)不可缺少的知識(shí),但是往往一些核心的高層次的東西更是不可缺少。&l
52、t;/p><p> 在這次編程中,更加深我對事件監(jiān)聽,各方法的實(shí)現(xiàn)功能,還有布局方式及常用的GUI標(biāo)準(zhǔn)組件更深刻的認(rèn)識(shí)。同時(shí),也鞏固了數(shù)據(jù)結(jié)構(gòu)的鏈表的應(yīng)用。在經(jīng)過這次課設(shè)使我知道在設(shè)計(jì)的過程中最好學(xué)習(xí)自己解決問題,無論是通過書籍還是網(wǎng)絡(luò),這樣可以增強(qiáng)自己解決問題的能力,同時(shí)加強(qiáng)記憶。任意一次實(shí)踐都是在檢驗(yàn)自己學(xué)習(xí)的水平,也是強(qiáng)迫自己再提高編程水平。</p><p><b> 六.
53、參考文獻(xiàn)</b></p><p> [1]丁振凡 .Java語言實(shí)用教程[M]. 北京郵電大學(xué)出版社2006.9 </p><p> [2]丁振凡 .Java語言實(shí)用教程實(shí)驗(yàn)指導(dǎo)[M]. 北京郵電大學(xué)出版社. 2006.9</p><p> [3]嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu)(c語言版).清華大學(xué)出版社.2008.3</p><p>
54、 [4]耿祥義.Java課程設(shè)計(jì).清華大學(xué)出版社.2004.1</p><p> [5]http://cai.ecjtu.jx.cn</p><p><b> 七、附錄:</b></p><p><b> 源程序:</b></p><p> (主類Jisuanqi)</p>
55、<p> package my; //把生成的所有class文件保存到一個(gè)文件夾里,便于引用。</p><p> import javax.swing.*; </p><p> import javax.swing.event.*; </p><p> import java.awt.*; </p><p> imp
56、ort java.awt.event.*; </p><p> public class Jisuanqi extends JFrame implements ActionListener </p><p><b> {</b></p><p> JFrame frame; </p><p> JButton d
57、eng=new JButton("="); //定義按鈕</p><p> JButton fu=new JButton("+/-"); </p><p> JButton aa=new JButton("A"); </p><p> JButton bb=new JButton("B&q
58、uot;); </p><p> JButton cc=new JButton("C"); </p><p> JButton dd=new JButton("D"); </p><p> JButton ee=new JButton("E"); </p><p> JBut
59、ton ff=new JButton("F"); </p><p> TextField k1=new TextField(); </p><p> objConversion convert = new objConversion(); </p><p> JMenuItem copy,paste,科學(xué)型,標(biāo)準(zhǔn)型,help,about,m
60、e; </p><p> JRadioButton sixteen,ten,eight,two; </p><p> JButton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9; </p><p> Container cp; //容器名為cp</p&g
61、t;<p> JTextField text; //文本條</p><p> String copycontent=""; </p><p> boolean clickable=true,clear=true; //控制符號(hào)位</p><p> int all=0; </p><p>
62、double qian; </p><p> String fuhao; </p><p> int jin=10,first=1; //默認(rèn)選中十進(jìn)制</p><p> public Jisuanqi() //此類的構(gòu)造函數(shù) </p><p><b> { </b></p><p>
63、 super("計(jì)算器"); //最上面的起名為計(jì)算器</p><p> setSize(400,300); </p><p> setLocation(250,200); </p><p> text=new JTextField(25); //文本框最多可輸入25位數(shù)</p><p> text.set
64、Text("0."); //默認(rèn)文本框?yàn)?</p><p> text.setHorizontalAlignment(JTextField.RIGHT);//從右到左 </p><p> JPanel cp1=new JPanel(); //設(shè)置3個(gè)面板</p><p> JPanel cp2=new JPanel(); &
65、lt;/p><p> JPanel cp3=new JPanel(); </p><p> cp=getContentPane(); </p><p> cp.add(cp1,"North"); //界面布局</p><p> cp.add(cp2,"Center"); </p>
66、<p> cp.add(cp3,"South"); </p><p> cp1.setLayout(new GridLayout(1,6)); </p><p> cp2.setLayout(new GridLayout(2,4)); </p><p> cp3.setLayout(new GridLayout(6,6)); &
67、lt;/p><p> sixteen=new JRadioButton("十六進(jìn)制"); </p><p> sixteen.setVisible(true); </p><p> ten=new JRadioButton("十進(jìn)制",true); </p><p> ten.setVisible(
68、true); </p><p> eight=new JRadioButton("八進(jìn)制"); </p><p> eight.setVisible(true); </p><p> two=new JRadioButton("二進(jìn)制"); </p><p> two.setVisible(tr
69、ue); </p><p> sixteen.addActionListener(this); //事件監(jiān)聽者</p><p> ten.addActionListener(this); </p><p> eight.addActionListener(this); </p><p> two.addActionListener(t
70、his); </p><p> ButtonGroup btg=new ButtonGroup(); </p><p> btg.add(sixteen); </p><p> btg.add(ten); </p><p> btg.add(eight); </p><p> btg.add(two); &l
71、t;/p><p> JTextField t3=new JTextField(25); //向各個(gè)面板中添加按鈕</p><p> cp1.add(text); </p><p> text.setEditable(true); </p><p> text.setBackground(new Color(255, 255, 255));
72、 </p><p> cp2.add(sixteen); </p><p> cp2.add(ten); </p><p> cp2.add(eight); </p><p> cp2.add(two); </p><p> backspace=new JButton("Backspace"
73、;); </p><p> backspace.setForeground(new Color(255,0,0)); </p><p> backspace.addActionListener(this); </p><p> ce=new JButton("CE"); </p><p> ce.setForegr
74、ound(new Color(255,0,0)); </p><p> ce.addActionListener(this); </p><p> c=new JButton("C"); </p><p> c.setForeground(new Color(255,0,0)); </p><p> c.addAc
75、tionListener(this); </p><p> k1.setVisible(false); </p><p> cp2.add(k1); </p><p> cp2.add(backspace); </p><p> cp2.add(ce); </p><p> cp2.add(c); </
76、p><p> num0=new JButton("0"); </p><p> num1=new JButton("1"); </p><p> num2=new JButton("2"); </p><p> num3=new JButton("3"); &
77、lt;/p><p> num4=new JButton("4"); </p><p> num5=new JButton("5"); </p><p> num6=new JButton("6"); </p><p> num7=new JButton("7"
78、); </p><p> num8=new JButton("8"); </p><p> num9=new JButton("9"); </p><p> cp3.add(num7); </p><p> num7.addActionListener(this); //數(shù)字事件監(jiān)聽者,以獲取按
79、鈕上的數(shù)字</p><p> cp3.add(num8); </p><p> num8.addActionListener(this); </p><p> cp3.add(num9); </p><p> num9.addActionListener(this); </p><p> cp3.add(nu
80、m4); </p><p> num4.addActionListener(this); </p><p> cp3.add(num5); </p><p> num5.addActionListener(this); </p><p> cp3.add(num6); </p><p> num6.addAc
81、tionListener(this); </p><p> cp3.add(num1); </p><p> num1.addActionListener(this); </p><p> cp3.add(num2); </p><p> num2.addActionListener(this); </p><p&
82、gt; cp3.add(num3); </p><p> num3.addActionListener(this); </p><p> cp3.add(num0); </p><p> num0.addActionListener(this); </p><p> cp3.add(fu); </p><p>
83、; fu.addActionListener(this); </p><p> cp3.add(deng); </p><p> deng.setForeground(new Color(255,0,0)); //符號(hào)事件監(jiān)聽者</p><p> deng.addActionListener(this); </p><p> cp3
84、.add(aa); </p><p> aa.addActionListener(this); </p><p> cp3.add(bb); </p><p> bb.addActionListener(this); </p><p> cp3.add(cc); </p><p> cc.addActionL
85、istener(this); </p><p> cp3.add(dd); </p><p> dd.addActionListener(this); </p><p> cp3.add(ee); </p><p> ee.addActionListener(this); </p><p> cp3.add(
86、ff); </p><p> ff.addActionListener(this); </p><p> aa.setVisible(false); </p><p> bb.setVisible(false); </p><p> cc.setVisible(false); </p><p> dd.set
87、Visible(false); </p><p> ee.setVisible(false); </p><p> ff.setVisible(false); </p><p> JMenuBar mainMenu = new JMenuBar(); //菜單條</p><p> setJMenuBar(mainMenu); <
88、/p><p> JMenu editMenu = new JMenu("編輯"); </p><p> JMenu viewMenu = new JMenu("查看"); </p><p> JMenu helpMenu = new JMenu("幫助"); </p><p>
89、mainMenu.add(editMenu); </p><p> mainMenu.add(viewMenu); </p><p> mainMenu.add(helpMenu); </p><p> copy = new JMenuItem(" 復(fù)制"); </p><p> paste = new JMenu
90、Item(" 粘貼"); </p><p> KeyStroke copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK); </p><p> copy.setAccelerator(copyks);//設(shè)置退出菜單選項(xiàng)加上快捷鍵 </p><p> KeyStroke pa
91、steks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK); </p><p> paste.setAccelerator(pasteks);//設(shè)置退出菜單選項(xiàng)加上快捷鍵 </p><p> editMenu.add(copy); </p><p> editMenu.add(paste); <
92、;/p><p> copy.addActionListener(this); </p><p> paste.addActionListener(this); </p><p> 標(biāo)準(zhǔn)型=new JMenuItem("標(biāo)準(zhǔn)型");</p><p> 科學(xué)型 = new JMenuItem("● 科學(xué)型&quo
93、t;); </p><p> viewMenu.add(標(biāo)準(zhǔn)型); </p><p> viewMenu.add(科學(xué)型); </p><p> 標(biāo)準(zhǔn)型.addActionListener(//標(biāo)準(zhǔn)型和科學(xué)型進(jìn)行切換</p><p> new ActionListener(){</p><p> public
94、 void actionPerformed(ActionEvent e){//處理事件</p><p> new ComputerPad();//生成一個(gè)科學(xué)計(jì)算機(jī)的對象 就會(huì)出現(xiàn)科學(xué)計(jì)算器的窗口</p><p> exit();}}};</p><p> about = new JMenuItem(" 關(guān)于計(jì)算器"); </p&
95、gt;<p> me = new JMenuItem(" 作者主頁"); </p><p> helpMenu.add(about); </p><p> helpMenu.add(me); </p><p> about.addActionListener(this); </p><p> me.
96、addActionListener(this); </p><p> addWindowListener(new WindowDestroyer());//結(jié)束窗口 </p><p><b> } </b></p><p> protected void exit() {</p><p> // TODO Aut
97、o-generated method stub</p><p> public void actionPerformed(ActionEvent e) </p><p> {//響應(yīng)動(dòng)作代碼}</p><p> if(first==1) </p><p> text.setText(""); </p>
98、<p> first=0; //第一次把文本框0.清空 </p><p> Object temp = e.getSource(); </p><p> sixteen.setVisible(true); </p><p> ten.setVisible(true); </p><p> eight.setV
99、isible(true); </p><p> two.setVisible(true); </p><p> 科學(xué)型.setText(" 標(biāo)準(zhǔn)型"); </p><p> 標(biāo)準(zhǔn)型.setText("●科學(xué)型"); </p><p> aa.setVisible(true); </p>
100、;<p> bb.setVisible(true); </p><p> cc.setVisible(true); </p><p> dd.setVisible(true); </p><p> ee.setVisible(true); </p><p> ff.setVisible(true); </p>
101、;<p> aa.setEnabled(false); </p><p> bb.setEnabled(false); </p><p> cc.setEnabled(false); </p><p> dd.setEnabled(false); </p><p> ee.setEnabled(false); <
102、/p><p> ff.setEnabled(false); </p><p> if(temp==copy) //點(diǎn)擊“復(fù)制“后執(zhí)行</p><p><b> { </b></p><p> copycontent = text.getText(); </p><p><b&
103、gt; } </b></p><p> if(temp==paste) //點(diǎn)擊“粘帖”后執(zhí)行</p><p><b> { </b></p><p> text.setText(text.getText()+copycontent); </p><p><b> } </b&
104、gt;</p><p> if(temp==help) </p><p> { //打開系統(tǒng)幫助文件 要查資料 </p><p><b> try </b></p><p><b> { </b></p><p> String filePath =
105、 "C:/"; </p><p> Runtime.getRuntime().exec("cmd.exe /c "+filePath); </p><p><b> } </b></p><p> catch(Exception eeee) </p><p><b>
106、; { </b></p><p> System.out.println("打開系統(tǒng)的計(jì)算器出錯(cuò)"); </p><p><b> } </b></p><p><b> } </b></p><p> if(temp==about) </p>
107、<p><b> { </b></p><p> JOptionPane.showMessageDialog(frame," Java計(jì)算器 孫丹丹","關(guān)于計(jì)算器",JOptionPane.INFORMATION_MESSAGE); ; </p><p><b> } </b></
108、p><p> if(temp==me) </p><p><b> { </b></p><p><b> try </b></p><p><b> { </b></p><p> Process p = Runtime.getRuntime()
109、.exec("explorer http://www.baidu.com"); </p><p><b> } </b></p><p> catch(Exception eeee) </p><p><b> { </b></p><p> System.out.pri
110、ntln("打開指定網(wǎng)頁出錯(cuò)"); </p><p><b> } </b></p><p><b> } </b></p><p><b> try </b></p><p><b> { </b></p>&l
111、t;p> if(temp==sixteen) //十六進(jìn)制轉(zhuǎn)換</p><p><b> { </b></p><p> String hex=text.getText(); </p><p> int inthex=Integer.parseInt(hex,jin);//先把數(shù)變?yōu)?0進(jìn)制 </p><
112、;p> text.setText(convert.decHex(inthex)) ; </p><p><b> jin=16; </b></p><p> aa.setEnabled(true); </p><p> bb.setEnabled(true); </p><p> cc.setEnable
113、d(true); </p><p> dd.setEnabled(true); </p><p> ee.setEnabled(true); </p><p> ff.setEnabled(true); </p><p> num2.setEnabled(true); </p><p> num3.setEn
114、abled(true); </p><p> num4.setEnabled(true); </p><p> num5.setEnabled(true); </p><p> num6.setEnabled(true); </p><p> num7.setEnabled(true); </p><p>
115、num8.setEnabled(true); </p><p> num9.setEnabled(true); </p><p><b> } </b></p><p> if(temp==eight) //八進(jìn)制轉(zhuǎn)換</p><p><b> { </b></p><
116、;p> String oct =text.getText(); </p><p> int intoct=Integer.parseInt(oct,jin); </p><p> text.setText(convert.decOct(intoct)) ; </p><p><b> jin=8; </b></p>
117、<p> aa.setEnabled(false); //不顯示</p><p> bb.setEnabled(false); </p><p> cc.setEnabled(false); </p><p> dd.setEnabled(false); </p><p> ee.setEnabled(false);
118、</p><p> ff.setEnabled(false); </p><p> num2.setEnabled(true); </p><p> num3.setEnabled(true); </p><p> num4.setEnabled(true); </p><p> num5.setEnable
119、d(true); </p><p> num6.setEnabled(true); </p><p> num7.setEnabled(true); </p><p> num8.setEnabled(false); </p><p> num9.setEnabled(false); </p><p><
120、b> } </b></p><p> if(temp==two) </p><p><b> { </b></p><p> String bin=text.getText(); </p><p> int intbin=Integer.parseInt(bin,jin); </p>
121、;<p> text.setText(convert.decBin(intbin)); </p><p><b> jin=2; </b></p><p> aa.setEnabled(false); </p><p> bb.setEnabled(false); </p><p> cc.set
122、Enabled(false); </p><p> dd.setEnabled(false); </p><p> ee.setEnabled(false); </p><p> ff.setEnabled(false); </p><p> num2.setEnabled(false); </p><p>
123、 num3.setEnabled(false); </p><p> num4.setEnabled(false); </p><p> num5.setEnabled(false); </p><p> num6.setEnabled(false); </p><p> num7.setEnabled(false); </p&
124、gt;<p> num8.setEnabled(false); </p><p> num9.setEnabled(false); </p><p><b> } </b></p><p> if(temp==ten) </p><p><b> { </b></p&g
125、t;<p> String dec=text.getText(); </p><p> int intdec=Integer.parseInt(dec,jin); </p><p> text.setText(intdec+""); </p><p><b> jin=10; </b></p>
126、;<p> aa.setEnabled(false); </p><p> bb.setEnabled(false); </p><p> cc.setEnabled(false); </p><p> dd.setEnabled(false); </p><p> ee.setEnabled(false); <
127、/p><p> ff.setEnabled(false); </p><p> num2.setEnabled(true); </p><p> num3.setEnabled(true); </p><p> num4.setEnabled(true); </p><p> num5.setEnabled(tr
128、ue); </p><p> num6.setEnabled(true); </p><p> num7.setEnabled(true); </p><p> num8.setEnabled(true); </p><p> num9.setEnabled(true); </p><p><b>
129、 } </b></p><p><b> } </b></p><p> catch(Exception ee) </p><p><b> { </b></p><p> System.out.println("轉(zhuǎn)換出錯(cuò),可能你沒有輸入任何字符"); <
130、;/p><p> text.setText("轉(zhuǎn)換出錯(cuò)"); </p><p> clear=false; </p><p><b> } </b></p><p> if(temp==backspace) //退格 </p><p><b> {&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)---java計(jì)算器
- java課程設(shè)計(jì)—計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- java計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)---計(jì)算器
- java課程設(shè)計(jì)--計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- 計(jì)算器java課程設(shè)計(jì)--簡單計(jì)算器
- java計(jì)算器課程設(shè)計(jì)-- 計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)
- java課程設(shè)計(jì)報(bào)告—計(jì)算器
- java課程設(shè)計(jì)----簡易計(jì)算器
- java課程設(shè)計(jì)報(bào)告--計(jì)算器設(shè)計(jì)
- java_計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)-計(jì)算器系統(tǒng)
- java課程設(shè)計(jì)---科學(xué)計(jì)算器
- java實(shí)現(xiàn)計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)-計(jì)算器系統(tǒng)
- java計(jì)算器課程設(shè)計(jì)報(bào)告
- java計(jì)算器課程設(shè)計(jì)報(bào)告---模擬科學(xué)計(jì)算器
- java計(jì)算器課程設(shè)計(jì)---計(jì)算器模擬程序
評論
0/150
提交評論