九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

GUI 程序設(shè)計實驗報告

上傳人:伴*** 文檔編號:82518453 上傳時間:2022-04-29 格式:DOC 頁數(shù):12 大?。?45KB
收藏 版權(quán)申訴 舉報 下載
GUI 程序設(shè)計實驗報告_第1頁
第1頁 / 共12頁
GUI 程序設(shè)計實驗報告_第2頁
第2頁 / 共12頁
GUI 程序設(shè)計實驗報告_第3頁
第3頁 / 共12頁

下載文檔到電腦,查找使用更方便

16 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《GUI 程序設(shè)計實驗報告》由會員分享,可在線閱讀,更多相關(guān)《GUI 程序設(shè)計實驗報告(12頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、廣 州 大 學(xué)實 驗 報 告學(xué) 院 工商管理學(xué)院 專業(yè)、班級 電子商務(wù) 姓名、學(xué)號 課程名稱 Java語言程序設(shè)計 項目名稱 GUI 程序設(shè)計 實驗時間:2013年 06月 09日 GUI 程序設(shè)計 實驗報告開課實驗室:文俊東6062013年06月09日學(xué)院工商管理學(xué)院年級、專業(yè)、班姓名成績課程名稱Java語言程序設(shè)計實驗項目名 稱GUI 程序設(shè)計指導(dǎo)教師簽名一、實驗?zāi)康?1) 掌握GUI 程序設(shè)計的基本技術(shù);(2) 掌握基本W(wǎng)idget的使用;(3) 掌握通GUI設(shè)計用戶接口的方法;二、實驗原理(算法分析(包括流程圖))1. CalcFace類按照Lcd類進行改造(將兩個類中的相關(guān)功能合并)

2、;2. 由于GUI程序已是消息驅(qū)動的,程序運行后就處于一個循環(huán)中,因此原仿真程序中Calcface中的input()方法以及Calculator中的on()方法就可棄之不用了。3.改造Toyface,為計算器界面布局,并將Toyface與Runcale合并使之能與calculator相連。4. System.out.println需改成向Jlabel對象輸出的語句三、實驗過程原始記錄(數(shù)據(jù)、圖表、計算等)1.運行程序2.進行運算 3.計算器其他按鈕的功能實現(xiàn)1)C的功能實現(xiàn) 按C后計算機只錄入9*; 2)N的功能實現(xiàn) 按N后結(jié)果變成-15 3)A的功能實現(xiàn) 按A后清空歸零 四、實驗感悟本次實驗

3、相對比較簡單,只需要安排好顯示界面和將兩個合并之后再對一些細節(jié)部分進行修改就可以了。完成實驗后我對顯示界面的布局更加了解了。五、附錄(自己實現(xiàn)的源代碼)/ CalcFace.java /import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import javax.swing.BorderFactory;import javax.swing.JLabel;import javax.swing.JPanel;impor

4、t javax.swing.border.CompoundBorder;class CalcFace extends JPanel implements ActionListener public CalcFace(String k, byte pr)keys = k; prec = pr+; nbuf = new StringBuffer(prec);reset1();errorMode=false;errorStr=;d = new JLabel(in, JLabel.RIGHT);setBorder(BorderFactory.createCompoundBorder(BorderFac

5、tory.createLoweredBevelBorder(), BorderFactory.createEmptyBorder(5,10, 5, 10);setLayout(new BorderLayout(); /設(shè)置布管理器reset2();add(d);addMouseListener(new ClickHandler(this); /注冊事件監(jiān)聽器 public void setCalc(Calculator ca)calc = ca; public void showNumber(String s) d.setText(hl+prompt + s+ht); public void

6、showOp(char op) /如果輸入的str為空,則清除errorMode /相當于主控模決發(fā)送一個消息給計算器,使其可知道當前計算器對象當前的狀態(tài) public void errorInput(String str) if(str.equals() errorMode=false; errorStr=; else errorMode=true; errorStr=str; prompt=prompt+( +str+ ); public void showStatus(String e) prompt=e; private void enter(char c) /當計算器處于溢出狀態(tài)時,

7、只充許其在下面這段代碼中執(zhí)行。 if(errorMode) /進入errormode,只接收規(guī)定字符 if(errorStr.indexOf(c)=-1) reset1(); return; /計算器處于正常狀態(tài)時,下面這段代碼會被執(zhí)行 if ( keys.indexOf(c) != -1 ) / if c an operatorshowOp(c);if ( num ) calc.enterNumber(extractNumber(), c);elsecalc.enterOp(c);reset1(); else if ( nump(c) & nbuf.length() prec ) num =

8、 true;buildNumber(c); private boolean nump(char c) return( c = . | Character.isDigit(c) ); private String extractNumber() return (nbuf.length() = 0) ? 0: nbuf.toString(); private void buildNumber(char c)int i = nbuf.length();if ( i = 0 & c = 0) return; / ignore leading zerosif ( c = . ) / at most on

9、e decimal pointif ( ! before_point ) return;else before_point = false;nbuf.append(c); private void reset1()before_point = true;nbuf.setLength(0);num = false; protected void reset2() count = 0;in = 0;d.setText(hl + in + ht);public void actionPerformed(ActionEvent e) String cmd = e.getActionCommand();

10、 int i=cmd.charAt(0);if (cmd.equals(reset2)reset2();else if (count 13) if (count = 0)in = cmd;elsein += cmd;d.setText(hl + in + ht);count+;enter(char)i); public void doMouseEntered() d.setText(選擇數(shù)字進行運算); public void doMouseExited() d.setText(鼠標不在顯示區(qū)域); protected int count = 0; protected String in =

11、0; protected JLabel d; protected String hl = ; protected String ht = ; private String prompt=Calc: ; private Calculator calc; private String keys; / keys recognized private StringBuffer nbuf; / buffer for input number private String errorStr; /用于記錄在計算器處于溢出狀態(tài)時,充許用戶輸入的符號 private boolean errorMode; /用于

12、記錄計算器當前的狀態(tài),正?;蛞绯鰻顟B(tài) private byte prec; / max no of chars displayable private boolean before_point = true; private boolean num = false;import java.awt.GridLayout;import javax.swing.JFrame;/ RunCalc.java /public class RunCalc public static void main(String args) throws java.io.IOException CalcEng e = n

13、ew CalcEng();CalcFace f = new CalcFace(e.keys(), e.precision();Calculator x = new Calculator(e, f);JFrame win = new JFrame(Calc);win.addWindowListener(new WindowHandler(win);Keypad keypad = new Keypad(f); /此處f 為原Toyface中的lcd/ One column grid, 布局設(shè)置成一列win.setLayout(new GridLayout(0, 1);/ LCD和Keyboard各

14、占一行keypad.setLayout(new GridLayout(4, 4);win.getContentPane().add(f);win.getContentPane().add(keypad);win.pack();win.setVisible(true);return; import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JPanel;class Keypad extends JPanel Keypad(ActionListener f) r7 = new JButto

15、n(A);r7.setVerticalTextPosition(JButton.CENTER);r7.setHorizontalTextPosition(JButton.CENTER);r7.setActionCommand(reset2);/計算機清歸零r7.addActionListener(f);add(r7);r9 = new JButton(N);r9.setVerticalTextPosition(JButton.CENTER);r9.setHorizontalTextPosition(JButton.CENTER);r9.addActionListener(f);add(r9);

16、r1 = new JButton(C);r1.setVerticalTextPosition(JButton.CENTER);r1.setHorizontalTextPosition(JButton.CENTER);r1.setActionCommand(C);r1.addActionListener(f);add(r1);r2 = new JButton(+);r2.setVerticalTextPosition(JButton.CENTER);r2.setHorizontalTextPosition(JButton.CENTER);r2.addActionListener(f);add(r

17、2);r3 = new JButton(-);r3.setVerticalTextPosition(JButton.CENTER);r3.setHorizontalTextPosition(JButton.CENTER);r3.addActionListener(f);add(r3);r4 = new JButton(*);r4.setVerticalTextPosition(JButton.CENTER);r4.setHorizontalTextPosition(JButton.CENTER);r4.addActionListener(f);add(r4);r5 = new JButton(

18、/);r5.setVerticalTextPosition(JButton.CENTER);r5.setHorizontalTextPosition(JButton.CENTER);r5.addActionListener(f);add(r5);r6 = new JButton(=);r6.setVerticalTextPosition(JButton.CENTER);r6.setHorizontalTextPosition(JButton.CENTER);r6.addActionListener(f);add(r6);r8 = new JButton(.);r8.setVerticalTex

19、tPosition(JButton.CENTER);r8.setHorizontalTextPosition(JButton.CENTER);r8.addActionListener(f);add(r8);for (int i = 10; i 0; i-) bi - 1 = new JButton( + (i-1);bi - 1.setVerticalTextPosition(JButton.CENTER);bi - 1.setHorizontalTextPosition(JButton.CENTER);bi - 1.setActionCommand( + (i-1);bi - 1.addActionListener(f);add(bi - 1);protected JButton r7;protected JButton r1;protected JButton r2;protected JButton r3;protected JButton r4;protected JButton r5;protected JButton r6;protected JButton r8;protected JButton r9;protected JButton b = new JButton10;六、聯(lián)系方式(e-mail)

展開閱讀全文
溫馨提示:
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)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!