




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛟O(shè)計(jì)a(java)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)名稱: gui實(shí)驗(yàn) 實(shí)驗(yàn)類型: 設(shè)計(jì)型 指導(dǎo)教師: 劉涌 專業(yè)班級(jí): 信安1205 姓 名: 劉追 學(xué) 號(hào): 5120155364 實(shí)驗(yàn)地點(diǎn): 東六e501 實(shí)驗(yàn)成績(jī): 日期:2016年11月12日實(shí)驗(yàn)四 gui實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康木毩?xí)java圖形用戶界面設(shè)計(jì)、界面布局、事件設(shè)計(jì)方法,熟悉gui 程序設(shè)計(jì)的基本技術(shù)、基本widget的使用、gui設(shè)計(jì)用戶接口的方法二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)類似windows計(jì)算器的application應(yīng)用程序三、實(shí)驗(yàn)設(shè)計(jì)1、采用java application方式建立應(yīng)用程序calculator的框架2、仿照windows計(jì)
2、算器,實(shí)現(xiàn)界面設(shè)計(jì)。將contentpane分成兩個(gè)jpanel(borderlayout),其中一個(gè)放置文本框,另一個(gè)繼續(xù)劃分為兩部分,分別以flowlayout和gridlayout的形式放置按鈕。設(shè)置按鈕、文本框等的text值及相應(yīng)屬性的修改。3、設(shè)計(jì)方法:設(shè)兩個(gè)變量value1、value2分別存儲(chǔ)運(yùn)算符左右兩個(gè)操作數(shù),設(shè)置標(biāo)識(shí)符flag,初值為0,此時(shí)輸入的數(shù)傳給value1,當(dāng)按下+-*時(shí)設(shè)置flag為1,此時(shí)輸入的數(shù)字傳給value2;按下”=”時(shí),根據(jù)value1,value2及op值進(jìn)行計(jì)算并輸出至文本框4、設(shè)計(jì)方法調(diào)節(jié)程序bug5、點(diǎn)擊事先設(shè)計(jì)的計(jì)算器數(shù)字按鈕,顯示框出現(xiàn)相
3、應(yīng)數(shù)字;點(diǎn)擊“+-*/”時(shí),顯示框出現(xiàn)相應(yīng)字符;輸入計(jì)算式后再輸入“=”,顯示框出現(xiàn)計(jì)算結(jié)果,基本實(shí)現(xiàn)windows計(jì)算器功能四、實(shí)驗(yàn)過程1、采用java application方式建立應(yīng)用程序框架2、仿照windows計(jì)算器,利用多種布局方式實(shí)現(xiàn)界面設(shè)計(jì) 3、組裝操作數(shù)和運(yùn)算符,完成簡(jiǎn)單的整數(shù)加、減、乘、除運(yùn)算4、通過gettxt()方法來獲得顯示框txt內(nèi)容,settxt()方法把字符顯示在txt框內(nèi);通過integer.parseint(string)實(shí)現(xiàn)字符串到整型的轉(zhuǎn)換,string.valueof(int)實(shí)現(xiàn)整型到字符串的轉(zhuǎn)換。5、遇到的問題:顯示txt框無法顯示兩位及以上的數(shù)字
4、。解決方法:txt.settxt(string.valueof(num*10+btnnum);把原來的數(shù)字*10,再加上要顯示的字符并且將整型數(shù)字轉(zhuǎn)化為字符串。五、實(shí)驗(yàn)結(jié)果 運(yùn)行程序可得到一與windows計(jì)算器界面類似(形式由自己設(shè)定的計(jì)算器,可實(shí)現(xiàn)加、減、乘、除簡(jiǎn)單數(shù)學(xué)運(yùn)算。 六、討論與分析 1.通過這次實(shí)驗(yàn)懂得了gui的基本設(shè)計(jì)過程和其實(shí)現(xiàn) 2.對(duì)java的圖形用戶界面設(shè)計(jì)、事件設(shè)計(jì)方法有了進(jìn)一步的了解3.學(xué)會(huì)了制作簡(jiǎn)單的計(jì)算器七、附錄:關(guān)鍵代碼(給出適當(dāng)注釋,可讀性高)public class calculator extends javax.swing.jframe public c
5、alculator() initcomponents();private void initcomponents() /設(shè)置主面板按鈕menubar = new javax.swing.jmenubar();filemenu = new javax.swing.jmenu();openmenuitem = new javax.swing.jmenuitem();savemenuitem = new javax.swing.jmenuitem();saveasmenuitem = new javax.swing.jmenuitem();exitmenuitem = new javax.swing
6、.jmenuitem();helpmenu = new javax.swing.jmenu();contentsmenuitem = new javax.swing.jmenuitem();aboutmenuitem = new javax.swing.jmenuitem();editmenu = new javax.swing.jmenu();cutmenuitem = new javax.swing.jmenuitem();copymenuitem = new javax.swing.jmenuitem();pastemenuitem = new javax.swing.jmenuitem
7、();deletemenuitem = new javax.swing.jmenuitem();jlabel1.settext(jlabel1);jbutton1.settext(jbutton1);jcheckbox1.settext(jcheckbox1);jbutton2.settext(jbutton2);javax.swing.grouplayout jpanel1layout = new javax.swing.grouplayout(jpanel1);jpanel1.setlayout(jpanel1layout);jpanel1layout.sethorizontalgroup
8、(jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgap(0, 100,short.max_value);jpanel1layout.setverticalgroup(jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgap(0, 100,short.max_value);jcheckbox2.settext(jcheckbox2);jcheckbox2.addactionl
9、istener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) jcheckbox2actionperformed(evt););setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close);setcursor(new java.awt.cursor(java.awt.cursor.default_cursor);txttext.setfont(new java.awt.font
10、(微軟雅黑, 0, 24);txttext.sethorizontalalignment(javax.swing.jtextfield.right);txttext.settext(0);txttext.setautoscrolls(false);txttext.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) );filemenu.settext(u67e5u770b);openmenuitem.settext(op
11、en);filemenu.add(openmenuitem);savemenuitem.settext(save);filemenu.add(savemenuitem);saveasmenuitem.settext(save as .);filemenu.add(saveasmenuitem);exitmenuitem.settext(exit);exitmenuitem.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt
12、) exitmenuitemactionperformed(evt););filemenu.add(exitmenuitem);menubar.add(filemenu);helpmenu.settext(help);contentsmenuitem.settext(contents);helpmenu.add(contentsmenuitem);aboutmenuitem.settext(about);helpmenu.add(aboutmenuitem);editmenu.settext(edit);cutmenuitem.settext(cut);editmenu.add(cutmenu
13、item);copymenuitem.settext(copy);editmenu.add(copymenuitem);pastemenuitem.settext(paste);editmenu.add(pastemenuitem);deletemenuitem.settext(delete);editmenu.add(deletemenuitem);helpmenu.add(editmenu);menubar.add(helpmenu);setjmenubar(menubar);javax.swing.grouplayout layout = new javax.swing.grouplay
14、out(getcontentpane();getcontentpane().setlayout(layout);layout.sethorizontalgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgroup(layout.createsequentialgroup().addcontainergap().addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading,false).addgr
15、oup(layout.createsequentialgroup().addcomponent(.addgap(21, 21, 21);layout.setverticalgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading).addgroup(layout.createsequentialgroup().addgap(26, 26, 26).addcomponent(txttext,javax.swing.grouplayout.preferred_size,64,javax.swing.grou
16、playout.preferred_size).addgap(18, 18, 18).addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.baseline).addcomponent(/其他按鍵功能設(shè)置已省略jbutton26,javax.swing.grouplayout.preferred_size,38,javax.swing.grouplayout.preferred_size).addcomponent(jbutton32,javax.swing.grouplayout.preferred_siz
17、e,83,javax.swing.grouplayout.preferred_size).addcontainergap(60,short.max_value);pack();boolean isoperpressed = false;/為true時(shí)輸入下一個(gè)數(shù)字時(shí)清屏int oper = 0;/1實(shí)現(xiàn)加, 2實(shí)現(xiàn)減, 3實(shí)現(xiàn)乘, 4實(shí)現(xiàn)除, 5實(shí)現(xiàn)取余int number1 = 0;/參與運(yùn)算的第一個(gè)數(shù)字,保存在number1中private void jbutton8actionperformed(java.awt.event.actionevent evt) /按鍵,實(shí)現(xiàn)回退功能stri
18、ng s = txttext.gettext();/獲取屏幕上的字符串int num = integer.parseint(s);/轉(zhuǎn)換為整形num = num / 10;s = integer.tostring(num);/轉(zhuǎn)換為字符型txttext.settext(s);/顯示到屏幕上private void jbutton9actionperformed(java.awt.event.actionevent evt) /c按鍵,實(shí)現(xiàn)清屏功能txttext.settext(0);private void jbutton10actionperformed(java.awt.event.act
19、ionevent evt) /ce按鍵,實(shí)現(xiàn)初始化功能txttext.settext(0);isoperpressed = false;oper = 0;number1 = 0;private void jbutton17actionperformed(java.awt.event.actionevent evt) /取余if(oper !=0)/if else 語句實(shí)現(xiàn)連運(yùn)算 下同dengyu();oper=5;elsestring s = txttext.gettext();number1 = integer.parseint(s);/保存屏幕上的數(shù)字oper = 5;isoperpres
20、sed = true;/清屏private void jbutton16actionperformed(java.awt.event.actionevent evt) /除if(oper !=0)dengyu();oper=4;elsestring s = txttext.gettext();number1 = integer.parseint(s);oper = 4;isoperpressed = true;private void jbutton21actionperformed(java.awt.event.actionevent evt) /乘if(oper !=0)dengyu();
21、oper=3;elsestring s = txttext.gettext();number1 = integer.parseint(s);oper = 3;isoperpressed = true;private void jbutton26actionperformed(java.awt.event.actionevent evt) /減if(oper !=0)dengyu();oper=2;elsestring s = txttext.gettext();number1 = integer.parseint(s);oper = 2;isoperpressed = true;private
22、 void jbutton31actionperformed(java.awt.event.actionevent evt) /加if(oper !=0)dengyu();oper=1;elsestring s = txttext.gettext();number1 = integer.parseint(s);oper = 1;isoperpressed = true;private void jbutton32actionperformed(java.awt.event.actionevent evt) / =dengyu();public void dengyu()/等于方法,在屏幕上顯示
23、出計(jì)算結(jié)果int number2;string s;isoperpressed = true;switch (oper) case 0:break;case 1:number2 = integer.parseint(txttext.gettext();number1 = number1 + number2;s = integer.tostring(number1);txttext.settext(s);/顯示到屏幕上,其他數(shù)字輸出顯示方式同oper = 0;break;private void jbutton15actionperformed(java.awt.event.actioneven
24、t evt) /數(shù)字9按鍵if (!isoperpressed) /原來的數(shù)*10再加上按上去的數(shù)顯示到屏幕上string s = txttext.gettext();int num = integer.parseint(s);num = num * 10 + 9;s = integer.tostring(num);txttext.settext(s); else /點(diǎn)擊清屏并顯示點(diǎn)擊的數(shù)字txttext.settext(9);isoperpressed = false;private void jbutton14actionperformed(java.awt.event.actioneve
25、nt evt) if (!isoperpressed) string s = txttext.gettext();int num = integer.parseint(s);num = num * 10 + 8;s = integer.tostring(num);txttext.settext(s); else txttext.settext(8);isoperpressed = false;private void jbutton13actionperformed(java.awt.event.actionevent evt) if (!isoperpressed) string s = t
26、xttext.gettext();int num = integer.parseint(s);num = num * 10 + 7;s = integer.tostring(num);txttext.settext(s); else txttext.settext(7);isoperpressed = false;private void jbutton20actionperformed(java.awt.event.actionevent evt) if (!isoperpressed) string s = txttext.gettext();int num = integer.parse
27、int(s);num = num * 10 + 6;s = integer.tostring(num);txttext.settext(s); else txttext.settext(6);isoperpressed = false;private void jbutton19actionperformed(java.awt.event.actionevent evt) if (!isoperpressed) string s = txttext.gettext();int num = integer.parseint(s);num = num * 10 + 5;s = integer.to
28、string(num);txttext.settext(s); else txttext.settext(5);isoperpressed = false;private void jbutton18actionperformed(java.awt.event.actionevent evt) if (!isoperpressed) string s = txttext.gettext();int num = integer.parseint(s);num = num * 10 + 4;s = integer.tostring(num);txttext.settext(s); else txt
29、text.settext(4);isoperpressed = false;private void jbutton25actionperformed(java.awt.event.actionevent evt) if (!isoperpressed) string s = txttext.gettext();int num = integer.parseint(s);num = num * 10 + 3;s = integer.tostring(num);txttext.settext(s); else txttext.settext(3);isoperpressed = false;private void jbutton24actionperformed(java.awt.event.actionevent evt) if (!isoperpressed) string s = txttext.gettext();int num = integer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 植物保護(hù)技術(shù)員崗位面試問題及答案
- 遠(yuǎn)程醫(yī)療平臺(tái)運(yùn)維師崗位面試問題及答案
- 環(huán)保油墨應(yīng)用研究-洞察及研究
- 松樹水庫水源管理辦法
- 財(cái)政政策傳導(dǎo)效果-洞察及研究
- 團(tuán)隊(duì)內(nèi)部培訓(xùn)管理辦法
- 小學(xué)品德教育的目標(biāo)與實(shí)現(xiàn)策略
- FDM在碳纖維增強(qiáng)尼龍6復(fù)合材料性能研究中的應(yīng)用
- 國(guó)企資金管理辦法講解
- 數(shù)字時(shí)代舞蹈教學(xué)變革的理念、場(chǎng)景及實(shí)施路徑探索
- 計(jì)算機(jī)基礎(chǔ)知識(shí)理論競(jìng)賽題庫與答案(960題)
- 醫(yī)院反恐防暴培訓(xùn)內(nèi)容
- GB/T 44353.1-2024動(dòng)物源醫(yī)療器械第1部分:風(fēng)險(xiǎn)管理應(yīng)用
- 2024年廣州市黃埔軍校紀(jì)念中學(xué)小升初分班考試數(shù)學(xué)模擬試卷附答案解析
- 新人教版五年級(jí)數(shù)學(xué)下冊(cè)期末試卷
- DB32-T 4757-2024 連棟塑料薄膜溫室建造技術(shù)規(guī)范
- 2025屆甘肅省天水市秦州區(qū)天水一中高一下數(shù)學(xué)期末達(dá)標(biāo)檢測(cè)試題含解析
- 互聯(lián)網(wǎng)導(dǎo)論智慧樹知到期末考試答案章節(jié)答案2024年上海第二工業(yè)大學(xué)
- 重癥??谱o(hù)士進(jìn)修匯報(bào)課件
- 孕產(chǎn)婦兒童健康管理服務(wù)規(guī)范
- 機(jī)關(guān)大院保安服務(wù)
評(píng)論
0/150
提交評(píng)論