Java程序課程設(shè)計報告基于Java的計算器的設(shè)計與開發(fā)_第1頁
Java程序課程設(shè)計報告基于Java的計算器的設(shè)計與開發(fā)_第2頁
Java程序課程設(shè)計報告基于Java的計算器的設(shè)計與開發(fā)_第3頁
Java程序課程設(shè)計報告基于Java的計算器的設(shè)計與開發(fā)_第4頁
Java程序課程設(shè)計報告基于Java的計算器的設(shè)計與開發(fā)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 2009級級java程序課程設(shè)計報告程序課程設(shè)計報告 學(xué)學(xué) 院院 : 專專 業(yè)業(yè) : 計算機(jī)科學(xué)與技術(shù)計算機(jī)科學(xué)與技術(shù) 班班 級級 : 學(xué)學(xué) 號號 : 學(xué)學(xué)生生姓姓名名 : 指指導(dǎo)導(dǎo)教教師師 : 二二一一年一一年 一一 月月 報告題目報告題目:基于基于java的計算器的計算器 的設(shè)計與開發(fā)的設(shè)計與開發(fā) java程序課程設(shè)計任務(wù)書程序課程設(shè)計任務(wù)書 一、主要任務(wù)與目標(biāo) 1. 掌握java語言 2. 創(chuàng)建一個簡單的計算器,具有簡單人機(jī)交互界面,易于操作,便于進(jìn)行數(shù)據(jù) 之間的簡單運算。 二、具體要求(包括技術(shù)要求等): 1)能夠?qū)崿F(xiàn)基本的加、減、乘、除四則運算及開方,乘方運算; 2)如輸入數(shù)據(jù)時,

2、出現(xiàn)錯誤,可以修改; 3)運算結(jié)果能正確顯示;可以清零; 4)擁有登陸注冊功能; 5)可以查看歷史記錄; 學(xué)習(xí)并掌握以下技術(shù):java、awt,swing等 熟練使用以下開發(fā)工具:jdk,jcreate 等 實現(xiàn)計算器的上述的功能。 三、計劃進(jìn)度 112月28日12月29日:搜集資料、查閱文獻(xiàn),確定選題 212月30日-12月31日:需求分析,系統(tǒng)設(shè)計,系統(tǒng)功能模塊完善 31月1日-1月3日:編程實現(xiàn)系統(tǒng)、系統(tǒng)測試與修改 41月4日- 1月6日:課程設(shè)計報告撰寫 51月 7日- 1月 8日:課程設(shè)計報告答辯 四、主要參考文獻(xiàn) 1 耿祥義,張躍平.java大學(xué)實用教程(第二版).電子工業(yè)出版社.

3、2008年5月 學(xué)生(簽字) 2010年12月 28日 指導(dǎo)教師 2010年12月28 日 目目 錄錄 java程序課程設(shè)計任務(wù)書程序課程設(shè)計任務(wù)書.ii 目目 錄錄.iii 第第1章章 引言引言 .1 1.1 課程設(shè)計內(nèi)容.1 1.3 任務(wù)分工.1 第第2章章 計算器定義計算器定義 .2 2.1 計算器登陸注冊界面概述.2 2.1.1 計算器功能概述.2 2.1.2 計算結(jié)果的儲存與查看功能概述.2 2.2 本章小結(jié).2 第第3章章 計算器的具體實現(xiàn)計算器的具體實現(xiàn) .3 3.1界面設(shè)計.3 3.1.1用戶登陸界面圖.3 3.1.3 計算器主界面.8 3.2計算功能實現(xiàn).9 3.4 本章小結(jié)

4、.14 第第4章章 結(jié)束語結(jié)束語 .14 致謝致謝 .15 參考文獻(xiàn)參考文獻(xiàn) .15 附錄附錄 源代碼源代碼 .15 第第1章章 引言引言 1.11.1 課程設(shè)計內(nèi)容課程設(shè)計內(nèi)容 這是我組設(shè)計的計算器會有一些獨特的功能,本項目用到了java中的gui界 面和swing組件以及awt布局,所以簡單易用,它能完成如下的幾個功能: (1)數(shù)據(jù)計算處理功能 點擊按鈕中的數(shù)字鍵和運算符鍵就能進(jìn)行簡單的加、乘、乘、除四則運算 及三角函數(shù),開方,乘方運算 ;如果輸入有誤時可以按c撤銷后重新輸入新數(shù)據(jù),有儲存修改鍵; (2)查詢功能 查詢功能可以迅速方便地查找到相應(yīng)時段的執(zhí)行的操作及結(jié)果。 (3)計算器使用權(quán)

5、限功能 對個人的操作實現(xiàn)口令。用戶在使用計算器前需通過登錄界面登錄,以保護(hù)計 算器的數(shù)據(jù)安全。未有登錄資料的先進(jìn)行注冊。 (4)時間顯示功能 在計算器上顯示現(xiàn)在的時間,便于把握時間; 1.31.3 任務(wù)分工任務(wù)分工 :職位組長,總監(jiān)整個計算器設(shè)計制作過程,制定相應(yīng)計劃與分布任務(wù),負(fù)責(zé)撰 寫任務(wù)書,報告書,登陸注冊界面的設(shè)計,整體編碼框架的 設(shè)定; :負(fù)責(zé)報告書的排版,創(chuàng)建計算器主界面的編碼,計算器; :負(fù)責(zé)數(shù)據(jù)計算功能的編碼,實現(xiàn),計算器主界面的設(shè)計; :負(fù)責(zé)注冊登錄界面的功能的編碼,儲存與查看功能的編碼,計算器整體功能的 編碼的完善與調(diào)試; 第第2章章 計算器定義計算器定義 2.12.1 計

6、算器登陸注冊界面概述計算器登陸注冊界面概述 這是對計算器使用權(quán)限功能的添加,這是以后軟件開發(fā)的一個重點發(fā)展方向 。用戶在使用計算器前需通過登錄界面登錄,以保護(hù)計算器的數(shù)據(jù)安全和使用權(quán)限 的設(shè)定。未有登錄資料的必須先進(jìn)行注冊; 2.1.1 計算器功能概述計算器功能概述 一個計算器如果只有數(shù)據(jù)計算處理功能,或者是點擊按鈕中的數(shù)字鍵和運算 符鍵就能進(jìn)行簡單的加、乘、乘、除四則運算是遠(yuǎn)遠(yuǎn)不夠的,這太普通了,因此 加入三角函數(shù),開方,乘方運算 ,并且如果輸入有誤時可以按c撤銷后重新輸入新數(shù)據(jù),有儲存修改鍵;最主要 是加入了查詢功能:查詢功能可以迅速方便地查找到相應(yīng)時段的執(zhí)行的操作及結(jié) 果。還有就是計算器

7、使用權(quán)限的設(shè)定,即登陸注冊界面,用戶在使用計算器前需 通過登錄界面登錄,以保護(hù)計算器的數(shù)據(jù)安全。未有登錄資料的先進(jìn)行注冊。 2.1.2 計算結(jié)果的儲存與查看功能概述計算結(jié)果的儲存與查看功能概述 計算結(jié)果有了,但是一般的計算器不能查詢之前進(jìn)行的操作和結(jié)果,不得不重新 計算,這就帶來了不少麻煩,我組設(shè)計制作的計算器擁有直接查看歷史記錄的功 能,還附有各個操作的時間,便于確認(rèn); 2.22.2 本章小結(jié)本章小結(jié) 這一章介紹了當(dāng)前進(jìn)銷存管理系統(tǒng)應(yīng)該具備的功能模塊,并提供了市面上比 較流行的進(jìn)銷存管理系統(tǒng)作為參考。在這一章中,我們可以了解什么是進(jìn)銷存管 理系統(tǒng),當(dāng)前進(jìn)銷存管理系統(tǒng)的市場需求,還有一個進(jìn)銷存

8、管理系統(tǒng)應(yīng)該的開發(fā) 目標(biāo)。 第第3章章 計算器的具體實現(xiàn)計算器的具體實現(xiàn) 界面是系統(tǒng)之間最直接的交互界面,界面的友好性體現(xiàn)了軟件設(shè)計的質(zhì)量, 并在很大程度上決定了軟件是否成功。 3.13.1界面設(shè)計界面設(shè)計 1.界面設(shè)計界面設(shè)計 界面設(shè)計要求用gui,界面設(shè)計中有用到swing組件的textfield和button,用 到awt中的borderlayout和gridlayout布局管理方式。 3.1.1用戶登陸界面圖用戶登陸界面圖 如圖3.1.1和3.1.2所示 圖圖3.1.1 用戶登錄模塊框圖用戶登錄模塊框圖 圖圖3.1.23.1.2 用戶登錄界面用戶登錄界面 logindialog與com

9、pareuserdata函數(shù)的作用是用戶登錄界面創(chuàng)建和檢測用戶登的 合法性,并確認(rèn)用戶輸入了合法的登錄名和口令。 部分代碼: private void logindialog() login = new jdialog(); login.settitle(登錄); login.setlayout(new flowlayout(); login.add(new jlabel(用戶名:); final jtextfield name = new jtextfield(10); login.add(name); login.add(new jlabel(密 碼:); final jpasswordf

10、ield password = new jpasswordfield(10); password.setechochar(*); login.add(password); jbutton confirm = new jbutton(登錄); confirm.addactionlistener(new actionlistener() public void actionperformed(actionevent e) if (compareuserdata(name.gettext().trim(), new string(password.getpassword() login.setvis

11、ible(false); f.setvisible(true); else joptionpane.showmessagedialog(login, 用戶名或密碼錯誤!, 錯誤提示, joptionpane.error_message); ); login.add(confirm); final jdialog regdialog = new jdialog(login, 注冊, true); registerdialog(regdialog); jbutton register = new jbutton(注冊); register.addactionlistener(new actionl

12、istener() public void actionperformed(actionevent e) regdialog.setvisible(true); ); login.add(register); login.setsize(200, 130); login.setresizable(false); login.setlocationrelativeto(null); login.setvisible(true); private boolean compareuserdata(string name, string password) try randomaccessfile o

13、ut = new randomaccessfile(user.dat, rw); string fname, fpassword = null; while (out.getfilepointer() 1) tresult.settext(temp.delete(temp.length()-1, temp.length().tostring(); else tresult.settext(0); else if (s.equals(c) /如果是c刪除當(dāng)前計算 tresult.settext(0); tf.settext(); num1.replace(0, num1.length(), 0)

14、; num2.replace(0, num2.length(), 0); isexist = false; operate = ; else if (s.equals() tresult.settext( + math.pi); else if (s.equals(sin) string temp = tresult.gettext().trim(); double dtemp = math.pi / 180.0 * double.parsedouble(temp); tresult.settext(+math.sin(dtemp); save(sin + ( + temp + ) = + m

15、ath.sin(dtemp); else if (s.equals(cos) string temp = tresult.gettext().trim(); double dtemp = math.pi / 180.0 * double.parsedouble(temp); tresult.settext(+math.cos(dtemp); save(cos + ( + temp + ) = + math.cos(dtemp); else if (s.equals(tan) string temp = tresult.gettext().trim(); double dtemp = math.

16、pi / 180.0 * double.parsedouble(temp); tresult.settext(+math.tan(dtemp); save(tan + ( + temp + ) = + math.tan(dtemp); else if (s.equals(log) string temp = tresult.gettext().trim(); double dtemp = double.parsedouble(temp); tresult.settext(+math.log10(dtemp); save(log + ( + temp + ) = + math.log(dtemp

17、); else if (s.equals(mc) /如果是mc則清除緩沖區(qū) string temp = 0; memory.replace(0, memory.length(), temp); bm.settext( ); else if (s.equals(mr) /如果按鍵為mr則恢復(fù)緩沖區(qū)的數(shù)到文本框 tresult.settext(memory.tostring(); else if (s.equals(ms) /如果按鍵為ms則將文本框的數(shù)存入緩沖區(qū) string s1 = tresult.gettext().trim(); memory.replace(0, memory.leng

18、th(), s1); bm.settext(m); else if (s.equals(m+) /如果按鍵為ms則將文本框值與緩沖區(qū)的數(shù)相加但不顯示結(jié)果 string temp1 = tresult.gettext().trim(); double dtemp = double.parsedouble(temp1); string temp2 = memory.tostring(); if (temp2.length() = 0) temp2 = 0; dtemp += double.parsedouble(temp2); temp1 = string.valueof(dtemp); memo

19、ry.replace(0, memory.length(), temp1); bm.settext(m); else if (s.equals(1/x) /如果按鍵為1/x則將文本框中的數(shù)據(jù)為它的倒數(shù) string temp = tresult.gettext().trim(); double dtemp = double.parsedouble(temp); tresult.settext(+1/dtemp); else if (s.equals(sqrt) /如果按鍵為sqrt則將文本框中的內(nèi)容求平方根 string temp = tresult.gettext().trim(); dou

20、ble dtemp = double.parsedouble(temp); tresult.settext(+math.sqrt(dtemp); save(sqrt + ( + temp + ) = + math.sqrt(dtemp); else if (s.equals(x2) /如果按鍵為x2則將文本框中的內(nèi)容求平方 string temp = tresult.gettext().trim(); double dtemp = double.parsedouble(temp) * double.parsedouble(temp); tresult.settext(+dtemp); save

21、(temp + 2 = + math.sin(dtemp); else if (s.equals(+/-) string temp = tresult.gettext().trim(); double dtemp = -double.parsedouble(temp); if (dtemp != 0) tresult.settext(+dtemp); else if (s.equals(+) | s.equals(-) | s.equals(*) | s.equals(/) /加減乘除按鍵求結(jié)果 if (operate = ) num1 = num1.replace(0, num1.lengt

22、h(), tresult.gettext().trim(); isclear = true; tf.settext(num1.tostring() + s); else if (!isexist) num2 = num2.replace(0, num2.length(), tresult.gettext().trim(); string rlt = null; double a = double.parsedouble(num1.tostring().trim(); double b = double.parsedouble(num2.tostring().trim(); switch(ope

23、rate) case +: rlt = + (a + b); break; case -: rlt = + (a - b); break; case *: rlt = + (a * b); break; case /: rlt = + (a / b); break; tresult.settext(rlt); tf.settext( + num1.tostring() + operate + num2.tostring(); num1.replace(0, num1.length(), rlt); isclear = true; operate = s.charat(0); else if (

24、s.equals(=) /按鍵=顯示結(jié)果 if (!isexist) num2 = num2.replace(0, num2.length(), tresult.gettext().trim(); isexist = true; if (operate != ) string rlt = null; double a = double.parsedouble(num1.tostring().trim(); double b = double.parsedouble(num2.tostring().trim(); switch(operate) case +: rlt = + (a + b);

25、break; case -: rlt = + (a - b); break; case *: rlt = + (a * b); break; case /: rlt = + (a / b); break; tresult.settext(rlt); /存入文件 save( + a + + operate + + b + = + rlt); tf.settext( + num1.tostring() + operate + num2.tostring(); num1.replace(0, num1.length(), rlt); isclear = true; else if(s.equals(

26、.) /單擊“小數(shù)點”的處理 /當(dāng)前結(jié)果中不存在. if(tresult.gettext().trim().indexof(.) = -1) stringbuffer tmp = new stringbuffer(tresult.gettext().trim(); tresult.settext(tmp.append(s).tostring(); else /數(shù)字鍵的處理 if (!character.isdigit(tresult.gettext().charat(0) tresult.settext(); if (isclear) isclear = false; tresult.sett

27、ext(); if (isexist) isexist = false; tf.settext(); operate = ; tresult.settext(); stringbuffer tmp = new stringbuffer(tresult.gettext().trim(); if (tmp.tostring().equals(0) tmp.setlength(0); tresult.settext(tmp.append(s).tostring(); /end actionperformed 3.3 計算結(jié)果的儲存功能與查看功能計算結(jié)果的儲存功能與查看功能 1通過save函數(shù)來實現(xiàn)結(jié)

28、果的儲存功能; 部分代碼: private void save(string s) final simpledateformat sdf = new simpledateformat(yyyy年mm月dd日 hh:mm:ss :); string time = sdf.format(new date(system.currenttimemillis(); try file file = new file(data.txt); if (!file.exists() file.createnewfile(); char ch = new char(int)file.length(); filere

29、ader in = new filereader(file); in.read(ch); in.close(); filewriter out = new filewriter(file); string tmp = new string(ch); out.write(tmp.trim() + system.getproperty(line.separator); out.write(time + s).trim() + system.getproperty(line.separator); out.close(); catch(ioexception e) e.printstacktrace

30、(); 2通過“查看”選項中的“歷史記錄”來查看歷史結(jié)果,此showrecord函數(shù)的作 用就是把儲存在data.txt中的歷史記錄顯示在一面板中; 部分代碼如下: private void showrecord() jdialog dialog = new jdialog(f, 歷史記錄, true); jtextarea area = new jtextarea(); area.seteditable(false); dialog.add(new jscrollpane(area); dialog.setsize(640, 480); dialog.setlocationrelativet

31、o(null); try file file = new file(data.txt); if (!file.exists() file.createnewfile(); char ch = new char(int)file.length(); filereader in = new filereader(file); in.read(ch); in.close(); area.settext(new string(ch); catch(ioexception e) e.printstacktrace(); dialog.setvisible(true); 3.43.4 本章小結(jié)本章小結(jié) 本

32、章介紹了計算器的具體實現(xiàn)和部分關(guān)鍵代碼,其中包括用戶登錄界面創(chuàng)建 和檢測用戶登的合法性所要用到的logindialog與compareuserdata函數(shù),注冊界 面的設(shè)計與儲存,主界面的框架設(shè)計和計算功能,儲存與查看歷史記錄功能的具 體實現(xiàn)。 第第4章章 結(jié)束語結(jié)束語 在做本項目是時候,會遇到很多小問題,比如說:如何保存輸入的數(shù)字和下 一個數(shù)進(jìn)行加、減、乘、除運算。如何保存結(jié)果與如何進(jìn)行登陸注冊頁面的添加 及用戶信息的儲存,經(jīng)過不斷地嘗試與調(diào)整, 此次課程設(shè)計讓我們更了解熟悉了java中的圖形用戶界面和它的編程方式。 在完成課題的過程中也不斷充實了自己,學(xué)習(xí)到了很多以前沒有學(xué)習(xí)到的知識, 收

33、獲很大。最大的收獲就是對大學(xué)學(xué)習(xí)的總結(jié)和培養(yǎng)了解決困難的信心和能力, 使我們對所學(xué)知識能夠融會貫通,又不斷豐富了新知識。java計算器設(shè)計使得我 們對所學(xué)的專業(yè)課有了更為深刻的認(rèn)識,使得知識得到了鞏固和提高。 致謝致謝 首先我們要感謝指導(dǎo)老師xx老師,在我們學(xué)習(xí)java程序設(shè)計與完成jav a程序課程設(shè)計的過程中所給予的熱情教導(dǎo)、精心指導(dǎo)與大力支持。在許老師 的教導(dǎo)和指導(dǎo)下,我們的java程序設(shè)計知識和能力從無到有、由弱漸強(qiáng),理論和 實踐水平有了長足的進(jìn)步和顯著的提高,不斷開闊了思路與視野,總結(jié)出了許多 有意義的設(shè)計與開發(fā)經(jīng)驗。這些對我們來說是無比珍貴的知識和經(jīng)驗財富。在此 ,向許老師致以最誠

34、摯的謝意。 還要感謝組員之間的團(tuán)結(jié)與幫助。 參考文獻(xiàn)參考文獻(xiàn) 1 耿祥義,張躍平.java大學(xué)實用教程(第二版).電子工業(yè)出版社.2008年5月 附錄附錄 源代碼源代碼 /*/*引用數(shù)據(jù)包里的類與方法引用數(shù)據(jù)包里的類與方法*/*/ import java.awt.borderlayout; import java.awt.checkbox; import java.awt.checkboxgroup; import java.awt.color; import java.awt.container; import java.awt.flowlayout; import java.awt.fon

35、t; import java.awt.gridlayout; import java.awt.toolkit; import java.awt.datatransfer.clipboard; import java.awt.datatransfer.dataflavor; import java.awt.datatransfer.stringselection; import java.awt.datatransfer.transferable; import java.awt.datatransfer.unsupportedflavorexception; import java.awt.e

36、vent.actionevent; import java.awt.event.actionlistener; import java.awt.event.inputevent; import java.awt.event.keyevent; import java.io.file; import java.io.filereader; import java.io.filewriter; import java.io.ioexception; import java.io.randomaccessfile; import java.text.simpledateformat; import

37、java.util.date; import javax.swing.box; import javax.swing.jbutton; import javax.swing.jdialog; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jmenu; import javax.swing.jmenubar; import javax.swing.jmenuitem; import javax.swing.joptionpane; import javax.swing.jpanel; import

38、 javax.swing.jpasswordfield; import javax.swing.jscrollpane; import javax.swing.jtextarea; import javax.swing.jtextfield; import javax.swing.keystroke; import javax.swing.timer; /*java計算器 主類*/ public class calculator implements actionlistener jframe f; jdialog login, adduser; jmenu mview; jmenu medi

39、t; jmenu mhelp; jmenuitem mrecord; jmenuitem mcopy; jmenuitem mpaste; jmenuitem about; jtextfield tresult, tf; jbutton bnumber; jbutton boperator; jbutton bother; jbutton bm; jbutton pi; jbutton sin, cos, tan; jbutton log; char operate = ; /操作數(shù) stringbuffer num1 = new stringbuffer(0), num2 = new str

40、ingbuffer(0); boolean isexist = false, isclear = false; /m系列 stringbuffer memory = new stringbuffer(20); /系統(tǒng)剪切板 clipboard clip = toolkit.getdefaulttoolkit().getsystemclipboard(); /java計算器 構(gòu)造器 public calculator() f = new jframe(計算器); container contentpane = f.getcontentpane(); final simpledateformat

41、sdf = new simpledateformat(當(dāng)前時間 hh:mm:ss); timer time = new timer(1000, new actionlistener() public void actionperformed(actionevent e) f.settitle(計算器 + sdf.format(new date(system.currenttimemillis(); ); time.start(); /*java計算器 菜單的創(chuàng)建*/ jmenubar mbar = new jmenubar(); mbar.setopaque(true); mview = ne

42、w jmenu(查看(v); mview.setmnemonic(keyevent.vk_v); mrecord = new jmenuitem(歷史紀(jì)錄(h); mrecord.setmnemonic(keyevent.vk_h); mrecord.addactionlistener(this); mview.add(mrecord); medit = new jmenu(編輯(e); medit.setmnemonic(keyevent.vk_e); mcopy = new jmenuitem(復(fù)制(c); mcopy.setaccelerator(keystroke.getkeystro

43、ke(keyevent.vk_c, inputevent.ctrl_mask); mcopy.addactionlistener(this); medit.add(mcopy); mpaste = new jmenuitem(粘貼(p); mpaste.setaccelerator(keystroke.getkeystroke(keyevent.vk_v, inputevent.ctrl_mask); mpaste.addactionlistener(this); medit.add(mpaste); mhelp = new jmenu(幫助(h); mhelp.setmnemonic(key

44、event.vk_h); about = new jmenuitem(關(guān)于計算器); about.addactionlistener(this); mhelp.add(about); mbar.add(mview); mbar.add(medit); mbar.add(mhelp); f.setjmenubar(mbar); contentpane.setlayout(new borderlayout(); jpanel ptop = new jpanel(); ptop.setlayout(new borderlayout(); tf = new jtextfield(); tf.setho

45、rizontalalignment(jtextfield.right); tf.seteditable(false); ptop.add(tf, borderlayout.north); tresult = new jtextfield(0, 20); tresult.setfont(new font(黑體, font.bold, 28); tresult.sethorizontalalignment(jtextfield.right); tresult.seteditable(false); ptop.add(tresult, borderlayout.center); contentpan

46、e.add(ptop,borderlayout.north); jpanel pbottom = new jpanel(); pbottom.setlayout(new borderlayout(); jpanel pleft = new jpanel(); pleft.setlayout(new gridlayout(5,2,3,3); bm = new jbutton( ); bm.setenabled(false); pleft.add(bm); /*java計算器 功能鍵定義*/ pi = new jbutton(); pi.addactionlistener(this); pi.se

47、tforeground(color.red); pleft.add(pi); bother = new jbutton(mc); bother.addactionlistener(this); bother.setforeground(color.red); pleft.add(bother); sin = new jbutton(sin); sin.addactionlistener(this); sin.setforeground(color.red); pleft.add(sin); bother = new jbutton(mr); bother.addactionlistener(t

48、his); bother.setforeground(color.red); pleft.add(bother); cos = new jbutton(cos); cos.addactionlistener(this); cos.setforeground(color.red); pleft.add(cos); bother = new jbutton(ms); bother.addactionlistener(this); bother.setforeground(color.red); pleft.add(bother); tan = new jbutton(tan); tan.addac

49、tionlistener(this); tan.setforeground(color.red); pleft.add(tan); bother = new jbutton(m+); bother.addactionlistener(this); bother.setforeground(color.red); pleft.add(bother); log = new jbutton(log); log.addactionlistener(this); log.setforeground(color.red); pleft.add(log); pbottom.add(pleft,borderl

50、ayout.west); jpanel pright = new jpanel(); pright.setlayout(new borderlayout(); jpanel pup = new jpanel(); pup.setlayout(new gridlayout(1,3,3,0); bother = new jbutton(backspace); bother.addactionlistener(this); bother.setforeground(color.red); pup.add(bother); bother = new jbutton(ce); bother.addact

51、ionlistener(this); bother.setforeground(color.red); pup.add(bother); bother = new jbutton(c); bother.addactionlistener(this); bother.setforeground(color.red); pup.add(bother); /*java計算器 數(shù)字鍵盤區(qū)定義*/ jpanel pdown = new jpanel(); pdown.setlayout(new gridlayout(4,5,3,2); bnumber = new jbutton(7); bnumber.

52、setmnemonic(keyevent.vk_7); bnumber.setforeground(color.blue); bnumber.addactionlistener(this); pdown.add(bnumber); bnumber = new jbutton(8); bnumber.setforeground(color.blue); bnumber.addactionlistener(this); pdown.add(bnumber); bnumber = new jbutton(9); bnumber.setforeground(color.blue); bnumber.a

53、ddactionlistener(this); pdown.add(bnumber); boperator = new jbutton(/); boperator.setforeground(color.red); boperator.addactionlistener(this); pdown.add(boperator); boperator = new jbutton(sqrt); boperator.addactionlistener(this); boperator.setforeground(color.red); pdown.add(boperator); bnumber = n

54、ew jbutton(4); bnumber.setforeground(color.blue); bnumber.addactionlistener(this); pdown.add(bnumber); bnumber = new jbutton(5); bnumber.setforeground(color.blue); bnumber.addactionlistener(this); pdown.add(bnumber); bnumber = new jbutton(6); bnumber.setforeground(color.blue); bnumber.addactionliste

55、ner(this); pdown.add(bnumber); boperator = new jbutton(*); boperator.setforeground(color.red); boperator.addactionlistener(this); pdown.add(boperator); boperator = new jbutton(x2); boperator.setforeground(color.red); boperator.addactionlistener(this); pdown.add(boperator); bnumber = new jbutton(1);

56、bnumber.setforeground(color.blue); bnumber.addactionlistener(this); pdown.add(bnumber); bnumber = new jbutton(2); bnumber.setforeground(color.blue); bnumber.addactionlistener(this); pdown.add(bnumber); bnumber = new jbutton(3); bnumber.setforeground(color.blue); bnumber.addactionlistener(this); pdow

57、n.add(bnumber); boperator = new jbutton(-); boperator.setforeground(color.red); boperator.addactionlistener(this); pdown.add(boperator); boperator = new jbutton(1/x); boperator.setforeground(color.red); boperator.addactionlistener(this); pdown.add(boperator); bnumber = new jbutton(0); bnumber.setfor

58、eground(color.blue); bnumber.addactionlistener(this); pdown.add(bnumber); boperator = new jbutton(+/-); boperator.setforeground(color.blue); boperator.addactionlistener(this); pdown.add(boperator); boperator = new jbutton(.); boperator.setforeground(color.blue); boperator.addactionlistener(this); pd

59、own.add(boperator); boperator = new jbutton(+); boperator.setforeground(color.red); boperator.addactionlistener(this); pdown.add(boperator); boperator = new jbutton(=); boperator.setforeground(color.red); boperator.addactionlistener(this); pdown.add(boperator); pright.add(pup,borderlayout.north); pr

60、ight.add(pdown,borderlayout.south); pbottom.add(pright,borderlayout.east); contentpane.add(pbottom,borderlayout.south); f.pack(); f.setresizable(false); f.setlocationrelativeto(null); /f.setvisible(true); f.setdefaultcloseoperation(jframe.exit_on_close); logindialog(); /*登陸注冊界*/ private void logindi

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論