版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> Java課程設(shè)計(jì)</b></p><p> 設(shè)計(jì)題目 基于JavaJDK的計(jì)算器 </p><p> 設(shè)計(jì)時(shí)間 2017 </p><p> 學(xué)生姓名 馮明宇 </p><p>
2、; 學(xué)生學(xué)號(hào) 140404211 </p><p> 所在班級(jí) 1402班 </p><p> 指導(dǎo)教師 申靜 </p><p><b> 摘要</b></p><p> 計(jì)算
3、器在我們的生活中常常會(huì)使用到,本次課程設(shè)計(jì),利用課堂所學(xué)到的知識(shí),通過(guò)界面以及其中的邏輯處理,完成了基本的四則運(yùn)算的處理。通過(guò)awt包或者swing包中的界面設(shè)計(jì),實(shí)現(xiàn)了通過(guò)界面來(lái)顯示輸入過(guò)程和運(yùn)算結(jié)果,同時(shí)也使設(shè)計(jì)出來(lái)的計(jì)算器符合人性化的基本要求。面向?qū)ο蟮乃枷霃暮艽蟪潭壬峡梢宰尦绦虻乃悸犯忧逦铱芍赜眯院芨摺?lt;/p><p> 關(guān)鍵詞 java;計(jì)算器;四則運(yùn)算;面向?qū)ο螅?lt;/p>&l
4、t;p><b> 目 錄</b></p><p> 一.課設(shè)題目及要求…………………………………………………………….1</p><p> 1.1課設(shè)題目描述……………………………………………………………...1</p><p> 1.2基本要求…………………………………………………………………...1</p&g
5、t;<p> 二.功能描述及設(shè)計(jì)方案……………………………………………………….1</p><p> 2.1計(jì)算器功能描述……………………………………………………….…..1</p><p> 2.2設(shè)計(jì)思想及方案…………………………………………………………...1</p><p> 三.程序說(shuō)明………………………………………………………………
6、…….3</p><p> 3.1界面設(shè)計(jì)…………………………………………………………………...3</p><p> 3.1.1UI組件創(chuàng)建與初始化………………………………………..……...3</p><p> 3.1.2在窗體中添加UI組件…………………………………………..……4</p><p> 3.2添加事件響應(yīng)邏輯………
7、………………………………………………..6</p><p> 3.3計(jì)算邏輯實(shí)現(xiàn)……………………………………………………………..7</p><p> 四.運(yùn)行效果及存在的不足…………………………………………………….9</p><p> 4.1運(yùn)行效果…………………………………………………………………..10</p><p> 4.
8、2存在的不足………………………………………………………………..10</p><p> 五.結(jié)果分析及心得體會(huì)………………………………………………………11</p><p> 六.參考文獻(xiàn)…………………………………………………………………....12</p><p> 七.源程序附錄…………………………………………………………………12</p>
9、<p><b> 一.課設(shè)題目及要求</b></p><p><b> 1.1課設(shè)題目描述</b></p><p> 在JavaJDK平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于窗口界面的計(jì)算器</p><p><b> 1.2基本要求</b></p><p> 該計(jì)算器可以運(yùn)
10、算兩個(gè)兩位數(shù)的加減乘除運(yùn)算,可以通過(guò)點(diǎn)擊窗口的按鍵來(lái)實(shí)現(xiàn)所有操作(包括輸入數(shù)字和運(yùn)算符號(hào)以及作為計(jì)算等等),輸入過(guò)程及運(yùn)算結(jié)果都要與按鍵所在同一窗口中呈現(xiàn)</p><p> 二.功能描述及設(shè)計(jì)方案</p><p> 2.1計(jì)算器功能描述</p><p> 本次課程設(shè)計(jì)的計(jì)算器具有能夠進(jìn)行加、減、乘、除四則基本運(yùn)算的基本功能,并且通過(guò)自己的努力為此計(jì)算器添加了兩
11、個(gè)附加的功能:清零和異常處理機(jī)制,即除數(shù)為0以及只單擊運(yùn)算符運(yùn)算的算法錯(cuò)誤,并且能很好的實(shí)現(xiàn)其功能。 </p><p> 2.2設(shè)計(jì)思想及方案</p><p> 2.2.1設(shè)計(jì)思想概述</p><p> 要制作一個(gè)計(jì)算器,首先需要知道它由哪些部分組成。</p><p> 結(jié)構(gòu)上來(lái)說(shuō),一個(gè)簡(jiǎn)單的圖形界面,需要由界面組件、組件的
12、事件監(jiān)聽(tīng)器(響應(yīng)各類事件的邏輯)和具體的事件處理邏輯組成。</p><p> 2.2.2設(shè)計(jì)方案結(jié)構(gòu)圖</p><p><b> 基本運(yùn)算功能方案圖</b></p><p> 異常處理機(jī)制功能方案圖</p><p> 設(shè)計(jì)好實(shí)現(xiàn)方案后,接下來(lái),我們首先需要制作界面部分。這部分主要的工作就是創(chuàng)建各個(gè)界面組件對(duì)象,對(duì)
13、其進(jìn)行初始化,以及控制各組件之間的層次關(guān)系和布局大</p><p><b> 小</b></p><p><b> 三.程序說(shuō)明</b></p><p> 3.1界面設(shè)計(jì)與實(shí)現(xiàn)</p><p> 3.1.1 UI 組件創(chuàng)建和初始化</p><p><b>
14、?。?)、面板</b></p><p> JPanel txtpanel:用于放置文本框</p><p> Panel btnpanel: 用于放置按鈕(0-9和+,-,*,/,=) </p><p><b> ?。?)、顯示部分</b></p><p> a.第一個(gè)面板:txtpanel<
15、/p><p> 位置以及排列方式BorderLayout.NORTH </p><p> txtpanel.add(txtinput):添加文本框到txtpanel面板中</p><p> b.第二個(gè)面板:btnpanel</p><p> 排列方式:setLayout(gl)</p><p><b>
16、 (3)、基本按鈕 </b></p><p> btnpanel.add(b7) btnpanel.add(b8) btnpanel.add(b9);</p><p> btnpanel.add(multiply) btnpanel.add(b4) btnpanel.add(b5);</p><p> btnpa
17、nel.add(b6) btnpanel.add(divide) btnpanel.add(b1);</p><p> btnpanel.add(b2) btnpanel.add(b3) btnpanel.add(add);</p><p> btnpanel.add(b0) .add(bdes) btnpanel.add(equal);&
18、lt;/p><p> btnpanel.add(subtract) </p><p> 以上是在第二個(gè)面板btnpanelH中添加的0到9和+,-,*,/,=的按鈕。</p><p> 首先我們需要將界面中要用到的 UI 組件作為 Calculator 類的成員變量在一開(kāi)始聲明。主要代碼如下:</p><p> // 繼承一個(gè) JFram
19、e 對(duì)象。JFrame 可以理解為程序的主窗體。</p><p> public class Calculator extends JFrame implements ActionListener</p><p><b> {</b></p><p> //txtpanel用于放置文本框,btnpanel用于放置按鈕</p>
20、<p> JPanel txtpanel,btnpanel;</p><p> //創(chuàng)建文本框,用于顯示內(nèi)容 </p><p> JTextField txtinput;</p><p><b> .</b></p><p><b> .</b></p><
21、p><b> .</b></p><p> //聲明各個(gè)UI組件對(duì)象并初始化</p><p> public Calculator()</p><p><b> {</b></p><p> super("基于JavaJDK的計(jì)算器");</p>&
22、lt;p> txtpanel=new JPanel();</p><p> btnpanel=new JPanel();</p><p> // 參數(shù) 25 表明可以顯示 25 列的文本內(nèi)容</p><p> txtinput=new JTextField(25);</p><p> // 設(shè)置文本框不能編輯</p>
23、;<p> txtinput.setEditable(false); </p><p> // 設(shè)置文本框?yàn)橛覍?duì)齊,使輸入和結(jié)果都靠右顯示</p><p> txtinput.setHorizontalAlignment(JTextField.RIGHT); txtinput.setText("");</p><p><
24、b> // 數(shù)字鍵0到9</b></p><p> b1=new JButton("1");</p><p> b2=new JButton("2");</p><p> b3=new JButton("3");</p><p> b4=new JButt
25、on("4");</p><p> b5=new JButton("5");</p><p> b6=new JButton("6");</p><p> b7=new JButton("7");</p><p> b8=new JButton("
26、;8");</p><p> b9=new JButton("9");</p><p> b0=new JButton("0");</p><p> // 計(jì)算命令按鈕,加減乘除以及小數(shù)點(diǎn),清除等</p><p> bdes=new JButton(".");<
27、;/p><p> add=new JButton("+");</p><p> subtract=new JButton("-");</p><p> multiply=new JButton("*");</p><p> divide=new JButton("/&q
28、uot;);</p><p> clear=new JButton("清 零");</p><p> equal=new JButton("=");</p><p> 3.1.2 在窗體中添加 UI 組件</p><p> 這個(gè)計(jì)算器有兩個(gè) JPanel</p><p>
29、 什么是 JPanel:JPanel 是一般輕量級(jí)容器。如上圖所示,你可以將其理解為一個(gè)盛放其他 UI 組件的“籃子”。 JPanel 位于 javax.swing 包中,為面板容器,可以加入到 JFrame 中 , 它自身是個(gè)容器,也可以把其他 component (組件) 加入到 JPanel 中,例如 JButton、JTextArea、JTextField 等。</p><p>
30、在這個(gè)項(xiàng)目中,兩個(gè) JPanel 分別對(duì)應(yīng)這個(gè)計(jì)算器按鍵除 “清零” 鍵外其他的鍵,另個(gè)面板則是文本框跟 “清零” 鍵。</p><p><b> 主要代碼如下:</b></p><p> // 創(chuàng)建Jpanel 的兩個(gè)對(duì)象并初始化</p><p> //txtpanel用于放置文本框,btnpanel用于放置按鈕</p>
31、<p> JPanel txtpanel,btnpanel;</p><p><b> .</b></p><p><b> .</b></p><p><b> .</b></p><p> //將UI組件添加進(jìn)容器內(nèi)</p><p&g
32、t; getContentPane().add(txtpanel,BorderLayout.NORTH);</p><p> txtpanel.add(txtinput);</p><p> txtpanel.add(clear);</p><p> // 設(shè)置該容器的布局為四行四列,邊距為5像素</p><p> gl=new G
33、ridLayout(4,4,5,5);</p><p> btnpanel.setLayout(gl);</p><p> getContentPane().add(btnpanel);</p><p> // 將用于計(jì)算的按鈕添加到容器內(nèi)</p><p> btnpanel.add(b7);</p><p>
34、 btnpanel.add(b8);</p><p> btnpanel.add(b9);</p><p> btnpanel.add(multiply);</p><p> btnpanel.add(b4);</p><p> btnpanel.add(b5);</p><p> btnpanel.add
35、(b6);</p><p> btnpanel.add(divide);</p><p> btnpanel.add(b1);</p><p> btnpanel.add(b2);</p><p> btnpanel.add(b3);</p><p> btnpanel.add(add);</p>
36、<p> btnpanel.add(b0);</p><p> btnpanel.add(bdes);</p><p> btnpanel.add(equal);</p><p> btnpanel.add(subtract);</p><p> // 設(shè)置主窗口大小</p><p> set
37、Size(400,250);</p><p> setVisible(true);</p><p> // 設(shè)置主窗口出現(xiàn)在屏幕上的位置</p><p> setLocation(300,200); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);</p><p><
38、b> }</b></p><p> 布局結(jié)束后,就是計(jì)算器的難點(diǎn):事件處理程序</p><p> 3.2、添加事件響應(yīng)邏輯</p><p> 對(duì)于計(jì)算器而言,涉及到的事件響應(yīng)邏輯主要有:數(shù)字鍵、加減乘除運(yùn)算、等于以及清除</p><p><b> 主要代碼如下:</b></p>
39、<p> //綁定事件響應(yīng)邏輯到各個(gè)UI組件上</p><p> public void btnCancelActionPerformed()</p><p> { txtinput.setText("");}</p><p> public void actionPerformed(ActionEvent e)</p&g
40、t;<p><b> { try{</b></p><p> Object obj=e.getSource();</p><p> if(obj==b1)</p><p> txtinput.setText(txtinput.getText()+"1");</p><p> e
41、lse if(obj==b2)</p><p> txtinput.setText(txtinput.getText()+"2");</p><p> else if(obj==b3)</p><p> txtinput.setText(txtinput.getText()+"3");</p><p&
42、gt; else if(obj==b4)</p><p> txtinput.setText(txtinput.getText()+"4");</p><p> else if(obj==b5)</p><p> txtinput.setText(txtinput.getText()+"5");</p>
43、<p> else if(obj==b6)</p><p> txtinput.setText(txtinput.getText()+"6");</p><p> else if(obj==b7)</p><p> txtinput.setText(txtinput.getText()+"7");</p
44、><p> else if(obj==b8)</p><p> txtinput.setText(txtinput.getText()+"8");</p><p> else if(obj==b9)</p><p> txtinput.setText(txtinput.getText()+"9");
45、</p><p> else if(obj==b0)</p><p> txtinput.setText(txtinput.getText()+"0");</p><p> else if(obj==bdes)</p><p> txtinput.setText(txtinput.getText()+".
46、");</p><p> else if(obj==add)</p><p> { d1=Double.parseDouble(txtinput.getText());</p><p><b> s="+";</b></p><p> txtinput.setText("&
47、quot;);</p><p><b> }</b></p><p> else if(obj==subtract)</p><p> { d1=Double.parseDouble(txtinput.getText());</p><p><b> s="-";</b>
48、</p><p> txtinput.setText(""); </p><p><b> }</b></p><p> else if(obj==divide)</p><p> { d1=Double.parseDouble(txtinput.getText());</p>
49、<p><b> s="/";</b></p><p> txtinput.setText("");</p><p><b> }</b></p><p> else if(obj==multiply)</p><p> { d1=Doub
50、le.parseDouble(txtinput.getText());</p><p><b> s="*";</b></p><p> txtinput.setText("");</p><p><b> }</b></p><p> 3.3、計(jì)算邏
51、輯的實(shí)現(xiàn)</p><p> 計(jì)算的邏輯要針對(duì)輸入的不同運(yùn)算符來(lái)對(duì)操作數(shù)進(jìn)行運(yùn)算,同時(shí)還要考慮到除數(shù)為0這種不合理的以及只單擊運(yùn)算符運(yùn)算的算法錯(cuò)誤,。</p><p><b> 主要代碼如下:</b></p><p> double d1;//操作數(shù)1</p><p> double d2;// 操作數(shù)2</
52、p><p> String s;// 運(yùn)算符</p><p><b> .</b></p><p><b> .</b></p><p><b> .</b></p><p><b> //計(jì)算邏輯</b></p>
53、<p> else if(obj==equal)</p><p> { if(s=="+")</p><p> { d2=d1+Double.parseDouble(txtinput.getText());</p><p><b> //顯示結(jié)果</b></p><p> tx
54、tinput.setText(Double.toString(d2));</p><p><b> }</b></p><p> else if(s=="-")</p><p> { d2=d1-Double.parseDouble(txtinput.getText());</p><p>&l
55、t;b> //顯示結(jié)果</b></p><p> txtinput.setText(Double.toString(d2));</p><p><b> }</b></p><p> else if(txtinput.equals(txtinput.getText())&&obj==subtract)&
56、lt;/p><p> { d2=d1-Double.parseDouble(txtinput.getText());</p><p><b> //顯示結(jié)果</b></p><p> txtinput.setText(Double.toString(d2)); }</p><p> else if(s=="
57、/")</p><p> { if(Double.parseDouble(txtinput.getText())==0)</p><p> // 除數(shù)為零:當(dāng)除數(shù)為零時(shí),彈出“除數(shù)不能為零”窗體</p><p> JOptionPane.showMessageDialog(this, "除數(shù)不能為0");</p>&
58、lt;p> d2=d1/Double.parseDouble(txtinput.getText());</p><p> txtinput.setText(Double.toString(d2));</p><p><b> }</b></p><p> else if(s=="*")</p>&
59、lt;p> { d2=d1*Double.parseDouble(txtinput.getText());</p><p> txtinput.setText(Double.toString(d2)); </p><p><b> }</b></p><p><b> }</b></p><
60、;p><b> }</b></p><p> catch(Exception ouch)</p><p> //錯(cuò)誤輸入:當(dāng)只單擊運(yùn)算符時(shí),彈出“錯(cuò)誤輸入”窗體</p><p> { JOptionPane.showMessageDialog(null,"錯(cuò)誤輸入","error",<
61、/p><p> JOptionPane.ERROR_MESSAGE); }</p><p><b> }</b></p><p> 四.效果及存在的問(wèn)題</p><p><b> 4.1運(yùn)行效果</b></p><p> ?。?)加法運(yùn)算功能:</p>&l
62、t;p><b> 例如12+14=</b></p><p> 先輸入12,在按+,在輸入14在按=,結(jié)果如下圖</p><p> (2)減法運(yùn)算功能:</p><p><b> 例如26-14=</b></p><p> 先輸入26,在按-,在輸入14,在按=,結(jié)果如下圖</p
63、><p> (3)乘法運(yùn)算功能:</p><p><b> 例如25*15=</b></p><p> 先輸入25,在按*,在輸入15,在按=,結(jié)果如下圖</p><p> (4)除法運(yùn)算功能:</p><p><b> 例如125\5=</b></p>
64、<p> 先輸入125,在按\,在輸入5,在按=,結(jié)果如下圖</p><p> ?。?) “清零按鈕”數(shù)據(jù)清除功能</p><p><b> 清除前</b></p><p><b> 清除后</b></p><p> (6). 異常處理機(jī)制</p><p>
65、<b> 當(dāng)除數(shù)為0時(shí)</b></p><p> 當(dāng)只單擊運(yùn)算符號(hào)運(yùn)算時(shí)</p><p> 4.2本計(jì)算器存在的不足</p><p> 在完成課程設(shè)計(jì)的期間,參閱了相關(guān)的書籍并在網(wǎng)絡(luò)上查找相關(guān)的資料,對(duì)實(shí)現(xiàn)這個(gè)設(shè)計(jì)提供了很大的幫助。由于目前知識(shí)方面的匱乏,本次課程設(shè)計(jì)的計(jì)算器沒(méi)能夠順利實(shí)現(xiàn)開(kāi)方運(yùn)算、正余弦正切運(yùn)算、階乘運(yùn)算,進(jìn)制轉(zhuǎn)換等高
66、級(jí),更復(fù)雜的數(shù)據(jù)計(jì)算功能,希望在以后的時(shí)間里豐富這方面的知識(shí),以便更好的運(yùn)用。</p><p> 五.結(jié)果分析及心得體會(huì)</p><p> 在這次課程設(shè)計(jì)中,我利用課堂所學(xué)的知識(shí)和通過(guò)查閱課外資料,順利的實(shí)現(xiàn)了計(jì)算器的各個(gè)功能,并對(duì)其進(jìn)行按鍵的排版、監(jiān)聽(tīng)、處理、運(yùn)算等各個(gè)步驟的親力親為,基本上完成了任務(wù)書上的各項(xiàng)內(nèi)容。</p><p> 雖然在這次的課程設(shè)計(jì)的
67、過(guò)程和結(jié)果中,也存在一些的不足, 但通過(guò)分析和解決,我也收獲了很多。其次,在本次的課程設(shè)計(jì)中,通過(guò)與同學(xué)們的交流,解決了不少長(zhǎng)久以來(lái)困擾我的java語(yǔ)言問(wèn)題,讓我深切體會(huì)到了大家共同努力的重要性。在設(shè)計(jì)這個(gè)系統(tǒng)的時(shí)候,我查閱了很多相關(guān)的書籍,并通過(guò)網(wǎng)絡(luò)解決了不少問(wèn)題。通過(guò)這次課程設(shè)計(jì),我對(duì)eclipse的開(kāi)發(fā)環(huán)境和使用也有了更多的認(rèn)識(shí)和了解,讓我對(duì)java語(yǔ)言的認(rèn)識(shí)又加深了一步,不僅使我學(xué)會(huì)了如何查閱資料,同時(shí)也讓我發(fā)現(xiàn)了網(wǎng)絡(luò)這個(gè)好老師
68、,總之收獲了很多。</p><p><b> 六.參考文獻(xiàn)</b></p><p> [1] 雍俊海 《Java程序設(shè)計(jì)教程》(第三版) 清華大學(xué)出版社 </p><p> [2](美)??藸?#160;著,陳昊鵬 譯 《Java編程思想》(第4版).機(jī)械工業(yè)出版社</p&
69、gt;<p> [3] 李興華 《Java從入門到精通》 人民郵電出版社 2010-4-1版 </p><p> [4] 溫沿書 《Java入門與實(shí)戰(zhàn)教程》人民郵電出版社2010-03-01版</p><p> [5] 李鐘尉 《Java范例完全自學(xué)手冊(cè)》 人民郵電出版社
70、 2009-10-1 </p><p><b> 七.源程序附錄</b></p><p> package com.demo1;</p><p> import javax.swing.*;</p><p> import java.awt.*;</p><p> i
71、mport java.awt.event.*;</p><p> public class Calculator extends JFrame implements ActionListener</p><p><b> {</b></p><p> JPanel txtpanel,btnpanel;//txtpanel用于放置文本框,b
72、tnpanel用于放置按鈕</p><p> JTextField txtinput;</p><p> JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,</p><p> subtract,clear,equal;</p><p> GridLayout
73、gl;</p><p> double d1;//操作數(shù)1</p><p> double d2;// 操作數(shù)2</p><p> String s;// 運(yùn)算符</p><p> //聲明各個(gè)UI組件對(duì)象并初始化</p><p> public Calculator()</p><p&g
74、t;<b> {</b></p><p> super("基于JavaJDK的計(jì)算器");</p><p> txtpanel=new JPanel();</p><p> btnpanel=new JPanel();</p><p> txtinput=new JTextField(25)
75、;</p><p> txtinput.setEditable(false);// 設(shè)置文本框不能編輯</p><p> txtinput.setHorizontalAlignment(JTextField.RIGHT); // 設(shè)置文本框?yàn)橛覍?duì)齊,使輸入和結(jié)果都靠右顯示</p><p> txtinput.setText("");<
76、/p><p> b1=new JButton("1");</p><p> b2=new JButton("2");</p><p> b3=new JButton("3");</p><p> b4=new JButton("4");</p>
77、<p> b5=new JButton("5");</p><p> b6=new JButton("6");</p><p> b7=new JButton("7");</p><p> b8=new JButton("8");</p><p>
78、; b9=new JButton("9");</p><p> b0=new JButton("0");</p><p> bdes=new JButton(".");</p><p> add=new JButton("+");</p><p> su
79、btract=new JButton("-");</p><p> multiply=new JButton("*");</p><p> divide=new JButton("/");</p><p> clear=new JButton("清 零");</p>
80、<p> equal=new JButton("=");</p><p> //清除鍵的邏輯(Clear)</p><p> clear.addActionListener(new ActionListener()//注冊(cè)監(jiān)聽(tīng)</p><p> { public void actionPerformed(ActionEvent
81、 argh)</p><p> { btnCancelActionPerformed();}</p><p><b> });</b></p><p> b1.addActionListener(this);</p><p> b2.addActionListener(this);</p><
82、p> b3.addActionListener(this);</p><p> b4.addActionListener(this);</p><p> b5.addActionListener(this);</p><p> b6.addActionListener(this);</p><p> b7.addActionL
83、istener(this);</p><p> b8.addActionListener(this);</p><p> b9.addActionListener(this);</p><p> b0.addActionListener(this);</p><p> bdes.addActionListener(this);<
84、/p><p> multiply.addActionListener(this);</p><p> divide.addActionListener(this);</p><p> add.addActionListener(this);</p><p> subtract.addActionListener(this);</p&
85、gt;<p> equal.addActionListener(this);</p><p> //將UI組件添加進(jìn)容器內(nèi)</p><p> getContentPane().add(txtpanel,BorderLayout.NORTH);</p><p> txtpanel.add(txtinput);</p><p&g
86、t; txtpanel.add(clear);</p><p> gl=new GridLayout(4,4,5,5);</p><p> btnpanel.setLayout(gl);</p><p> getContentPane().add(btnpanel);</p><p> btnpanel.add(b7);</p
87、><p> btnpanel.add(b8);</p><p> btnpanel.add(b9);</p><p> btnpanel.add(multiply);</p><p> btnpanel.add(b4);</p><p> btnpanel.add(b5);</p><p>
88、; btnpanel.add(b6);</p><p> btnpanel.add(divide);</p><p> btnpanel.add(b1);</p><p> btnpanel.add(b2);</p><p> btnpanel.add(b3);</p><p> btnpanel.add(
89、add);</p><p> btnpanel.add(b0);</p><p> btnpanel.add(bdes);</p><p> btnpanel.add(equal);</p><p> btnpanel.add(subtract);</p><p> setSize(400,250);<
90、/p><p> setVisible(true);</p><p> setLocation(300,200);// 設(shè)置主窗口出現(xiàn)在屏幕上的位置</p><p> setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);</p><p><b> }</b>&
91、lt;/p><p> //注冊(cè)各個(gè)監(jiān)聽(tīng)器,即綁定事件響應(yīng)邏輯到各個(gè)UI組件上</p><p> public void btnCancelActionPerformed()</p><p> { txtinput.setText("");}</p><p> public void actionPerformed(Ac
92、tionEvent e)</p><p><b> { try{</b></p><p> Object obj=e.getSource();</p><p> if(obj==b1)</p><p> txtinput.setText(txtinput.getText()+"1");<
93、/p><p> else if(obj==b2)</p><p> txtinput.setText(txtinput.getText()+"2");</p><p> else if(obj==b3)</p><p> txtinput.setText(txtinput.getText()+"3"
94、);</p><p> else if(obj==b4)</p><p> txtinput.setText(txtinput.getText()+"4");</p><p> else if(obj==b5)</p><p> txtinput.setText(txtinput.getText()+"5
95、");</p><p> else if(obj==b6)</p><p> txtinput.setText(txtinput.getText()+"6");</p><p> else if(obj==b7)</p><p> txtinput.setText(txtinput.getText()+&
96、quot;7");</p><p> else if(obj==b8)</p><p> txtinput.setText(txtinput.getText()+"8");</p><p> else if(obj==b9)</p><p> txtinput.setText(txtinput.getTe
97、xt()+"9");</p><p> else if(obj==b0)</p><p> txtinput.setText(txtinput.getText()+"0");</p><p> else if(obj==bdes)</p><p> txtinput.setText(txtinp
98、ut.getText()+".");</p><p> else if(obj==add)</p><p> { d1=Double.parseDouble(txtinput.getText());</p><p><b> s="+";</b></p><p> txti
99、nput.setText("");</p><p><b> }</b></p><p> else if(obj==subtract)</p><p> { d1=Double.parseDouble(txtinput.getText());</p><p><b> s=&quo
100、t;-";</b></p><p> txtinput.setText(""); </p><p><b> }</b></p><p> else if(obj==divide)</p><p> { d1=Double.parseDouble(txtinput.get
101、Text());</p><p><b> s="/";</b></p><p> txtinput.setText("");</p><p><b> }</b></p><p> else if(obj==multiply)</p>
102、<p> { d1=Double.parseDouble(txtinput.getText());</p><p><b> s="*";</b></p><p> txtinput.setText("");</p><p><b> }</b></p>
103、<p><b> //計(jì)算邏輯</b></p><p> else if(obj==equal)</p><p> { if(s=="+")</p><p> { d2=d1+Double.parseDouble(txtinput.getText());</p><p><
104、b> //顯示結(jié)果</b></p><p> txtinput.setText(Double.toString(d2));</p><p><b> }</b></p><p> else if(s=="-")</p><p> { d2=d1-Double.parseDo
105、uble(txtinput.getText());</p><p><b> //顯示結(jié)果</b></p><p> txtinput.setText(Double.toString(d2));</p><p><b> }</b></p><p> else if(txtinput.equ
106、als(txtinput.getText())&&obj==subtract)</p><p> { d2=d1-Double.parseDouble(txtinput.getText());</p><p><b> //顯示結(jié)果</b></p><p> txtinput.setText(Double.toString
107、(d2)); }</p><p> else if(s=="/")</p><p> { if(Double.parseDouble(txtinput.getText())==0)</p><p> // 除數(shù)為零:當(dāng)除數(shù)為零時(shí),彈出“除數(shù)不能為零”窗體</p><p> JOptionPane.showMessa
108、geDialog(this, "除數(shù)不能為0");</p><p> d2=d1/Double.parseDouble(txtinput.getText());</p><p> txtinput.setText(Double.toString(d2));</p><p><b> }</b></p>&
109、lt;p> else if(s=="*")</p><p> { d2=d1*Double.parseDouble(txtinput.getText());</p><p> txtinput.setText(Double.toString(d2)); </p><p><b> }</b></p>
110、<p><b> }</b></p><p><b> }</b></p><p> catch(Exception ouch)</p><p> //錯(cuò)誤輸入:當(dāng)只單擊運(yùn)算符時(shí),彈出“錯(cuò)誤輸入”窗體</p><p> { JOptionPane.showMessageDia
111、log(null,"錯(cuò)誤輸入","error",</p><p> JOptionPane.ERROR_MESSAGE); }</p><p><b> }</b></p><p> //設(shè)置程序顯示的界面風(fēng)格</p><p> public static void mai
112、n(String args[])</p><p><b> { try {</b></p><p> UIManager.setLookAndFeel ("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");}</p><p> catch(Exception e)
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)----簡(jiǎn)易計(jì)算器
- java編程語(yǔ)言設(shè)計(jì)課程設(shè)計(jì)--- 簡(jiǎn)易計(jì)算器設(shè)計(jì)
- java課程設(shè)計(jì)---java計(jì)算器
- 基于java的簡(jiǎn)易計(jì)算器設(shè)計(jì)
- 簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
- 簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
- 簡(jiǎn)易計(jì)算器課程設(shè)計(jì)
- 計(jì)算器java課程設(shè)計(jì)--簡(jiǎn)單計(jì)算器
- java課程設(shè)計(jì)---計(jì)算器
- java課程設(shè)計(jì)—計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- java計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)--計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- 基于java的小型計(jì)算器課程設(shè)計(jì)
- 簡(jiǎn)易計(jì)算器的設(shè)計(jì)課程設(shè)計(jì)
- 簡(jiǎn)易計(jì)算器課程設(shè)計(jì) (3)
- 簡(jiǎn)易計(jì)算器課程設(shè)計(jì) (2)
- 簡(jiǎn)易計(jì)算器課程設(shè)計(jì)報(bào)告
- vb課程設(shè)計(jì)簡(jiǎn)易計(jì)算器
評(píng)論
0/150
提交評(píng)論