




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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è)班級: 信安1205 姓 名: 劉追 學(xué) 號: 5120155364 實(shí)驗(yàn)地點(diǎn): 東六E501 實(shí)驗(yàn)成績: 日期: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ì)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分別存儲運(yùn)算符左右兩個(gè)操作數(shù),設(shè)置標(biāo)識符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)算符,完成簡單的整數(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)加、減、乘、除簡單數(shù)學(xué)運(yùn)算。 六、討論與分析 1.通過這次實(shí)驗(yàn)懂得了GUI的基本設(shè)計(jì)過程和其實(shí)現(xiàn) 2.對java的圖形用戶界面設(shè)計(jì)、事件設(shè)計(jì)方法有了進(jìn)一步的了解3.學(xué)會了制作簡單的計(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
8、(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);jChe
9、ckBox2.setText("jCheckBox2");jCheckBox2.addActionListener(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.
10、awt.Cursor.DEFAULT_CURSOR);txtText.setFont(new java.awt.Font("微軟雅黑", 0, 24);txtText.setHorizontalAlignment(javax.swing.JTextField.RIGHT);txtText.setText("0");txtText.setAutoscrolls(false);txtText.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ja
11、va.awt.event.ActionEvent evt) );fileMenu.setText("u67e5u770b");openMenuItem.setText("Open");fileMenu.add(openMenuItem);saveMenuItem.setText("Save");fileMenu.add(saveMenuItem);saveAsMenuItem.setText("Save As .");fileMenu.add(saveAsMenuItem);exitMenuItem.setText
12、("Exit");exitMenuItem.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) exitMenuItemActionPerformed(evt););fileMenu.add(exitMenuItem);menuBar.add(fileMenu);helpMenu.setText("Help");contentsMenuItem.setText("Cont
13、ents");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(&q
14、uot;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.GroupLayout(getContentPane();getContentPane().setLayout(layout);layo
15、ut.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,
16、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.c
17、reateParallelGroup(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_SIZE,83,javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap
18、(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)回退功能String s = txtText.getText();/獲取屏幕上的字符串int num = Integer.parseIn
19、t(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.ActionEvent evt) /CE按鍵,實(shí)現(xiàn)初始化功能txtText.setText("
20、;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;isOperPressed = true;/清屏private void jButton16
21、ActionPerformed(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();oper=3;elseString s = txtText.getTex
22、t();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 void jButton31ActionPerformed(java.
23、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()/等于方法,在屏幕上顯示出計(jì)算結(jié)果int number2;String s;isOperPres
24、sed = 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.ActionEvent evt) /數(shù)字9按鍵if (!isOperPressed) /原來
25、的數(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.ActionEvent evt) if (!isOperPress
26、ed) 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 = txtText.getTe
27、xt();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
28、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
29、= Integer.toString(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);txtT
30、ext.setText(s); else txtText.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 = Integ
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年勞動(dòng)保障協(xié)理員(中級)考試試卷:勞動(dòng)保障實(shí)務(wù)操作與案例分析
- 農(nóng)村集體資產(chǎn)運(yùn)營管理與托管協(xié)議
- 2025年中學(xué)教師資格考試《綜合素質(zhì)》教育熱點(diǎn)案例分析題歷年真題匯編與策略試卷
- 家用電器銷售庫存管理軟件協(xié)議
- 2025年輔導(dǎo)員選拔考試題庫:學(xué)生活動(dòng)策劃與活動(dòng)籌備經(jīng)費(fèi)預(yù)算試題
- 農(nóng)業(yè)機(jī)械化智能化對農(nóng)業(yè)生產(chǎn)方式變革的影響研究報(bào)告
- 小草的故事:自然的啟示作文15篇范文
- 小學(xué)生作文《含羞草的啟示》5篇
- 零售連鎖行業(yè)試題
- 我的母親作文寫事作文14篇
- 2025年湖南融通資源循環(huán)產(chǎn)業(yè)有限公司技能崗位招聘題庫帶答案分析
- CJ/T 340-2016綠化種植土壤
- 新能源汽車全生命周期碳足跡測算模型及減排策略
- 楊梅承包合同協(xié)議書
- 糧食加工消防安全管理規(guī)定
- 骨科器械的處理流程與清洗難點(diǎn)
- 2024年新滬科版七年級上冊數(shù)學(xué)教學(xué)課件 第1章 有理數(shù) 1.2 數(shù)軸、相反數(shù)和絕對值 第1課時(shí) 數(shù)軸
- 小浣熊的課件
- 2024北京西城區(qū)五年級(下)期末語文試題及答案
- 屋頂樹脂瓦安裝合同協(xié)議
- 美容皮膚科試題及答案
評論
0/150
提交評論