




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛟O(shè)計A(Java)實驗報告 實驗名稱: GUI實驗 實驗類型: 設(shè)計型 指導(dǎo)教師: 劉涌 專業(yè)班級: 信安1205 姓 名: 劉追 學(xué) 號: 5120155364 實驗地點: 東六E501 實驗成績: 日期:2016年11月12日實驗四 GUI實驗一、實驗?zāi)康木毩?xí)Java圖形用戶界面設(shè)計、界面布局、事件設(shè)計方法,熟悉GUI 程序設(shè)計的基本技術(shù)、基本W(wǎng)idget的使用、GUI設(shè)計用戶接口的方法二、實驗內(nèi)容設(shè)計一個類似Windows計算器的Application應(yīng)用程序三、實驗設(shè)計1、采用Java Application方式建立應(yīng)用程序Calculator的框架2、仿照Windows計
2、算器,實現(xiàn)界面設(shè)計。將contentPane分成兩個jPanel(borderlayout),其中一個放置文本框,另一個繼續(xù)劃分為兩部分,分別以FlowLayout和GridLayout的形式放置按鈕。設(shè)置按鈕、文本框等的Text值及相應(yīng)屬性的修改。3、設(shè)計方法:設(shè)兩個變量value1、value2分別存儲運算符左右兩個操作數(shù),設(shè)置標(biāo)識符flag,初值為0,此時輸入的數(shù)傳給value1,當(dāng)按下+-*時設(shè)置flag為1,此時輸入的數(shù)字傳給value2;按下”=”時,根據(jù)value1,value2及op值進行計算并輸出至文本框4、設(shè)計方法調(diào)節(jié)程序bug5、點擊事先設(shè)計的計算器數(shù)字按鈕,顯示框出現(xiàn)相
3、應(yīng)數(shù)字;點擊“+-*/”時,顯示框出現(xiàn)相應(yīng)字符;輸入計算式后再輸入“=”,顯示框出現(xiàn)計算結(jié)果,基本實現(xiàn)Windows計算器功能四、實驗過程1、采用Java Application方式建立應(yīng)用程序框架2、仿照Windows計算器,利用多種布局方式實現(xiàn)界面設(shè)計 3、組裝操作數(shù)和運算符,完成簡單的整數(shù)加、減、乘、除運算4、通過getTxt()方法來獲得顯示框txt內(nèi)容,setTxt()方法把字符顯示在Txt框內(nèi);通過Integer.parseInt(String)實現(xiàn)字符串到整型的轉(zhuǎn)換,String.valueOf(Int)實現(xiàn)整型到字符串的轉(zhuǎn)換。5、遇到的問題:顯示txt框無法顯示兩位及以上的數(shù)字
4、。解決方法:txt.setTxt(String.valueOf(num*10+btnNum);把原來的數(shù)字*10,再加上要顯示的字符并且將整型數(shù)字轉(zhuǎn)化為字符串。五、實驗結(jié)果 運行程序可得到一與Windows計算器界面類似(形式由自己設(shè)定的計算器,可實現(xiàn)加、減、乘、除簡單數(shù)學(xué)運算。 六、討論與分析 1.通過這次實驗懂得了GUI的基本設(shè)計過程和其實現(xiàn) 2.對java的圖形用戶界面設(shè)計、事件設(shè)計方法有了進一步的了解3.學(xué)會了制作簡單的計算器七、附錄:關(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ù)字時清屏int oper = 0;/1實現(xiàn)加, 2實現(xiàn)減, 3實現(xiàn)乘, 4實現(xiàn)除, 5實現(xiàn)取余int number1 = 0;/參與運算的第一個數(shù)字,保存在number1中private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) /按鍵,實現(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按鍵,實現(xiàn)清屏功能txtText.setText(0);private void jButton10ActionPerformed(java.awt.event.Act
19、ionEvent evt) /CE按鍵,實現(xiàn)初始化功能txtText.setText(0);isOperPressed = false;oper = 0;number1 = 0;private void jButton17ActionPerformed(java.awt.event.ActionEvent evt) /取余if(oper !=0)/if else 語句實現(xià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、出計算結(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 /點擊清屏并顯示點擊的數(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.pars
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 精裝臥室出租合同范本
- OEM加工食品合同范例
- 公路路燈安裝合同范例
- 兼職導(dǎo)游勞務(wù)合同范本
- 醫(yī)院廣告合同范本
- 合肥裝潢公司合同范本
- 單位長期租車合同范本
- 單位出讓房屋合同范例
- 制作安裝供貨合同范本
- 后增補協(xié)議合同范本
- 學(xué)前比較教育(學(xué)前教育專業(yè))第3版全套教學(xué)課件
- 企業(yè)人力資源內(nèi)部審核檢查表
- 《素描》課件-第一章 素描入門
- GB/T 42828.1-2023鹽堿地改良通用技術(shù)第1部分:鐵尾砂改良
- 工資條(標(biāo)準(zhǔn)模版)
- 第四講 搜索引擎檢索
- 法語的發(fā)音規(guī)則及法語單詞分類記憶
- 衛(wèi)生和微生物基礎(chǔ)知識培訓(xùn)-
- ICU輪轉(zhuǎn)護士培訓(xùn)計劃和手冊
- GB/T 9787-1988熱軋等邊角鋼尺寸、外形、重量及允許偏差
- GB/T 17614.1-2015工業(yè)過程控制系統(tǒng)用變送器第1部分:性能評定方法
評論
0/150
提交評論