版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?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)教師:X涌專業(yè)班級(jí):信安1205XX:X追學(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ù)、基本W(wǎng)idget的使用、GUI設(shè)計(jì)用戶接口的方法二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)類似Windows計(jì)算器的Application應(yīng)用程序三、實(shí)驗(yàn)設(shè)計(jì)、采用JavaApplication方式建立應(yīng)用程序Calculator的框架2、仿照Windows計(jì)算器,實(shí)現(xiàn)界面設(shè)計(jì)。將contentPane分成兩個(gè)jPanel(borderlayout),其中一個(gè)放置文本框,另一個(gè)繼續(xù)劃分為兩部分,分別以FlowLayout和GridLayout的形式放置按鈕。設(shè)置按鈕、文本框等的Text值及相應(yīng)屬性的修改。、設(shè)計(jì)方法:設(shè)兩個(gè)變量value1、value2分別存儲(chǔ)運(yùn)算符左右兩個(gè)操作數(shù),設(shè)置標(biāo)識(shí)符flag,初值為0value1,當(dāng)按下時(shí)設(shè)置flag為1字傳給value2;按下”=”時(shí),根據(jù)value1,value2及op值進(jìn)行計(jì)算并輸出至文本框、設(shè)計(jì)方法調(diào)節(jié)程序bug、點(diǎn)擊事先設(shè)計(jì)的計(jì)算器數(shù)字按鈕,顯示框出現(xiàn)相應(yīng)數(shù)字;點(diǎn)擊“+-*/”時(shí),顯示框出現(xiàn)相應(yīng)字符;輸入計(jì)算式后再輸入“基本實(shí)現(xiàn)Windows計(jì)算器功能四、實(shí)驗(yàn)過程、采用JavaApplication方式建立應(yīng)用程序框架、仿照Windows計(jì)算器,利用多種布局方式實(shí)現(xiàn)界面設(shè)計(jì)、組裝操作數(shù)和運(yùn)算符,完成簡(jiǎn)單的整數(shù)加、減、乘、除運(yùn)算、通過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ù)字。解決方法:txt.setTxt(String.valueOf(num*10+btnNum))*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)注釋,可讀性高)publicclassCalculatorextendsjavax.swing.JFrame{publicCalculator(){initComponents();}privatevoidinitComponents(){//設(shè)置主面板按鈕menuBar=newjavax.swing.JMenuBar();fileMenu=newjavax.swing.JMenu();openMenuItem=newjavax.swing.JMenuItem();saveMenuItem=newjavax.swing.JMenuItem();saveAsMenuItem=newjavax.swing.JMenuItem();exitMenuItem=newjavax.swing.JMenuItem();helpMenu=newjavax.swing.JMenu();contentsMenuItem=newjavax.swing.JMenuItem();aboutMenuItem=newjavax.swing.JMenuItem();editMenu=newjavax.swing.JMenu();cutMenuItem=newjavax.swing.JMenuItem();copyMenuItem=newjavax.swing.JMenuItem();pasteMenuItem=newjavax.swing.JMenuItem();deleteMenuItem=newjavax.swing.JMenuItem();jLabel1.setText("jLabel1");utton1.setText("utton1");jCheckBox1.setText("jCheckBox1");utton2.setText("utton2");javax.swing.GroupLayoutjPanel1Layout=newjavax.swing.GroupLayout(jPanel1);jPanel1.setLayout(jPanel1Layout);jPanel1Layout.setHorizontalGroup(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.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){jCheckBox2ActionPerformed(evt);}});setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setCursor(newjava.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));txtText.setFont(newjava.awt.Font("微軟雅黑",0,24));txtText.setHorizontalAlignment(javax.swing.JTextField.RIGHT);txtText.setText("0");txtText.setAutoscrolls(false);txtText.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){}});fileMenu.setText("\u67e5\u770b");openMenuItem.setText("Open");fileMenu.add(openMenuItem);saveMenuItem.setText("Save");fileMenu.add(saveMenuItem);saveAsMenuItem.setText("SaveAs...");fileMenu.add(saveAsMenuItem);exitMenuItem.setText("Exit");exitMenuItem.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEventevt){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(cutMenuItem);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.GroupLayoutlayout=newjavax.swing.GroupLayout(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).addGroup(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.GroupLayout.PREFERRED_SIZE).addGap(18,18,18).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(//其他按鍵功能設(shè)置已省略u(píng)tton26,javax.swing.GroupLayout.PREFERRED_SIZE,38,javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(utton32,javax.swing.GroupLayout.PREFERRED_SIZE,83,javax.swing.GroupLayout.PREFERRED_SIZE)).addContainerGap(60,Short.MAX_VALUE)));pack();}booleanisOperPressed=false;//為true時(shí)輸入下一個(gè)數(shù)字時(shí)清屏intoper=0;//1實(shí)現(xiàn)加,2實(shí)現(xiàn)減,3實(shí)現(xiàn)乘,4實(shí)現(xiàn)除,5實(shí)現(xiàn)取余intnumber1=0;//參與運(yùn)算的第一個(gè)數(shù)字,保存在number1中privatevoidutton8ActionPerformed(java.awt.event.ActionEventevt){//←按鍵,實(shí)現(xiàn)回退功能Strings=txtText.getText();//獲取屏幕上的字符串intnum=Integer.parseInt(s);//轉(zhuǎn)換為整形num=num/10;s=Integer.toString(num);//轉(zhuǎn)換為字符型txtText.setText(s);//顯示到屏幕上}privatevoidutton9ActionPerformed(java.awt.event.ActionEventevt){//C按鍵,實(shí)現(xiàn)清屏功能txtText.setText("0");}privatevoidutton10ActionPerformed(java.awt.event.ActionEventevt){//CE按鍵,實(shí)現(xiàn)初始化功能txtText.setText("0");isOperPressed=false;oper=0;number1=0;}privatevoidutton17ActionPerformed(java.awt.event.ActionEventevt){//取余if(oper!=0){//ifelse語(yǔ)句實(shí)現(xiàn)連運(yùn)算下同dengyu();oper=5;}else{Strings=txtText.getText();number1=Integer.parseInt(s);//保存屏幕上的數(shù)字oper=5;isOperPressed=true;//清屏}}privatevoidutton16ActionPerformed(java.awt.event.ActionEventevt){//除if(oper!=0){dengyu();oper=4;}else{Strings=txtText.getText();number1=Integer.parseInt(s);oper=4;isOperPressed=true;}}privatevoidutton21ActionPerformed(java.awt.event.ActionEventevt){//乘if(oper!=0){dengyu();oper=3;}else{Strings=txtText.getText();number1=Integer.parseInt(s);oper=3;isOperPressed=true;}}privatevoidutton26ActionPerformed(java.awt.event.ActionEventevt){//減if(oper!=0){dengyu();oper=2;}else{Strings=txtText.getText();number1=Integer.parseInt(s);oper=2;isOperPressed=true;}}privatevoidutton31ActionPerformed(java.awt.event.ActionEventevt){//加if(oper!=0){dengyu();oper=1;}else{Strings=txtText.getText();number1=Integer.parseInt(s);oper=1;isOperPressed=true;}}privatevoidutton32ActionPerformed(java.awt.event.ActionEventevt){//=dengyu();}publicvoiddengyu()//等于方法,在屏幕上顯示出計(jì)算結(jié)果{intnumber2;Strings;isOperPressed=true;switch(oper){case0:break;case1:number2=Integer.parseInt(txtText.getText());number1=number1+number2;s=Integer.toString(number1);txtText.setText(s);//顯示到屏幕上,其他數(shù)字輸出顯示方式同oper=0;break;}}privatevoidutton15ActionPerformed(java.awt.event.ActionEventevt){//數(shù)字9按鍵if(!isOperPressed){//原來的數(shù)*10再加上按上去的數(shù)顯示到屏幕上Strings=txtText.getText();intnum=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;}}privatevoidutton14ActionPerformed(java.awt.event.ActionEventevt){if(!isOperPressed){Strings=txtText.getText();intnum=Integer.parseInt(s);num=num*10+8;s=Integer.toString(num);txtText.setText(s);}else{txtText.setText("8");isOperPressed=false;}}privatevoidutton13ActionPerformed(java.awt.event.ActionEventevt){if(!isOperPressed){Strings=txtText.getText();intnum=Integer.parseInt(s);num=num*10+7;s=Integer.toString(num);txtText.setText(s);}else{txtText.setText("7");isOperPressed=false;}}privatevoidutton20ActionPerformed(java.awt.event.ActionEventevt){if(!isOperPressed){Strings=txtText.getText();intnum=Integer.parseInt(s);num=num*10+6;s=Integer.toString(num);txtText.setText(s);}else{txtText.setText("6");isOperPressed=false;}}privatevoidutton19ActionPerformed(java.awt.event.ActionEventevt){if(!isOperPressed){Strings=txtText.getText();intnum=Integer.parseInt(s);num=num*10+5;s=Integer.toString(num);txtText.setText(s);}else{txtText.setText("5");isOperPressed=false;}}privatevoidutton18ActionPerformed(java.awt.event.ActionEventevt){if(!isOperPressed){Strings=txtText.getText();intnum=Integer.parseInt(s);num=num*10+4;s=Integer.toString(num);txtText.setText(s);}else{txtText.setText("4");isOperPressed=false;}}privatevoidutton25ActionPerformed(java.awt.event.ActionEventevt){if(!isOperPressed){Strings=txtText.getText();intnum=Integer.parseInt(s);num=num*10+3;s=Integer.toString(num);txtText.setText(s);}else{txtText.setText("3");isOperPressed=false;}}privatevoidutton24ActionPerformed(java.awt.event.ActionEventevt){if(!isOperPressed){Strings=txtText.getText();intnum
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT 35430-2017 信息與文獻(xiàn) 期刊描述型元數(shù)據(jù)元素集》專題研究報(bào)告
- 《GB-T 41678.1-2022農(nóng)業(yè)機(jī)械和拖拉機(jī) 高壓電氣電子元件和系統(tǒng)的安全性 第1部分:通 用要求》專題研究報(bào)告
- 《GB-T 28030-2011接地導(dǎo)通電阻測(cè)試儀》專題研究報(bào)告
- 《GBT 33756-2017 基于項(xiàng)目的溫室氣體減排量評(píng)估技術(shù)規(guī)范 生產(chǎn)水泥熟料的原料替代項(xiàng)目》專題研究報(bào)告
- 養(yǎng)老社區(qū)床位預(yù)定金擔(dān)保協(xié)議
- 智能農(nóng)業(yè)設(shè)備運(yùn)維員崗位招聘考試試卷及答案
- 2026年內(nèi)二科護(hù)理工作計(jì)劃
- 2025年白喉、百日咳、破傷風(fēng)、乙肝四聯(lián)制劑合作協(xié)議書
- 2025年平板型太陽(yáng)熱水器項(xiàng)目建議書
- 兒童睡眠障礙的行為矯正方法
- 1688采購(gòu)合同范本
- 購(gòu)買鐵精粉居間合同范本
- GB/T 29730-2025冷熱水用分集水器
- 污水廠安全知識(shí)培訓(xùn)
- (2025年標(biāo)準(zhǔn))存單轉(zhuǎn)讓協(xié)議書
- 醫(yī)學(xué)科研誠(chéng)信專項(xiàng)培訓(xùn)
- 電力通信培訓(xùn)課件
- 第五版FMEA控制程序文件編制
- 藥物致癌性試驗(yàn)必要性指導(dǎo)原則
- 軟骨肉瘤護(hù)理查房
- 高級(jí)生物化學(xué)知識(shí)要點(diǎn)詳解
評(píng)論
0/150
提交評(píng)論