GUI 程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告

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

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

16 積分

下載資源

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

資源描述:

《GUI 程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告》由會(huì)員分享,可在線閱讀,更多相關(guān)《GUI 程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告(12頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 廣 州 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告 學(xué) 院 工商管理學(xué)院 專業(yè)、班級(jí) 電子商務(wù) 姓名、學(xué)號(hào) 課程名稱 Java語言程序設(shè)計(jì) 項(xiàng)目名稱 GUI 程序設(shè)計(jì) 實(shí)驗(yàn)時(shí)間:2013年 06月 09日 GUI 程序設(shè)計(jì) 實(shí)驗(yàn)報(bào)告 開課實(shí)驗(yàn)室:文俊東606 2013年06月09日 學(xué)院 工商管理學(xué)院

2、年級(jí)、專業(yè)、班 姓名 成績(jī) 課程 名稱 Java語言程序設(shè)計(jì) 實(shí)驗(yàn)項(xiàng)目 名 稱 GUI 程序設(shè)計(jì) 指導(dǎo)教師 簽名 一、實(shí)驗(yàn)?zāi)康? (1) 掌握GUI 程序設(shè)計(jì)的基本技術(shù); (2) 掌握基本W(wǎng)idget的使用; (3) 掌握通GUI設(shè)計(jì)用戶接口的方法; 二、實(shí)驗(yàn)原理(算法分析(包括流程圖)) 1. CalcFace類按照Lcd類進(jìn)行改造(將兩個(gè)類中的相關(guān)功能合并); 2. 由于GUI程序已是消息驅(qū)動(dòng)的,程序運(yùn)行后就處于一個(gè)循環(huán)中,因此原仿真程序中Calcface中的input()方法以及Calculator中的on()方法就可棄之

3、不用了。 3.改造Toyface,為計(jì)算器界面布局,并將Toyface與Runcale合并使之能與calculator相連。 4. System.out.println需改成向Jlabel對(duì)象輸出的語句 三、實(shí)驗(yàn)過程原始記錄(數(shù)據(jù)、圖表、計(jì)算等) 1.運(yùn)行程序 2.進(jìn)行運(yùn)算 3.計(jì)算器其他按鈕的功能實(shí)現(xiàn) 1)C的功能實(shí)現(xiàn) 按C后計(jì)算機(jī)只錄入9*; 2)N的功能實(shí)現(xiàn) 按N后結(jié)果變成-15 3)A的功能實(shí)現(xiàn)

4、 按A后清空歸零 四、實(shí)驗(yàn)感悟 本次實(shí)驗(yàn)相對(duì)比較簡(jiǎn)單,只需要安排好顯示界面和將兩個(gè)合并之后再對(duì)一些細(xì)節(jié)部分進(jìn)行修改就可以了。完成實(shí)驗(yàn)后我對(duì)顯示界面的布局更加了解了。 五、附錄(自己實(shí)現(xiàn)的源代碼) /////// CalcFace.java /////// import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.*; import javax.swin

5、g.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import 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();

6、errorMode=false; errorStr=""; d = new JLabel(in, JLabel.RIGHT); setBorder(BorderFactory.createCompoundBorder(BorderFactory .createLoweredBevelBorder(), BorderFactory.createEmptyBorder(5, 10, 5, 10))); setLayout(new BorderLayout()); //設(shè)置布管理器 reset2(); add(d);

7、 addMouseListener(new ClickHandler(this)); //注冊(cè)事件監(jiān)聽器 } public void setCalc(Calculator ca){ calc = ca; } public void showNumber(String s) { d.setText(hl+prompt + s+ht); } public void showOp(char op) { } //如果輸入的str為空,則清除errorMode //相當(dāng)于主控模決發(fā)送一個(gè)消息給計(jì)

8、算器,使其可知道當(dāng)前計(jì)算器對(duì)象當(dāng)前的狀態(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; }

9、 private void enter(char c) { //當(dāng)計(jì)算器處于溢出狀態(tài)時(shí),只充許其在下面這段代碼中執(zhí)行。 if(errorMode){ //進(jìn)入errormode,只接收規(guī)定字符 if(errorStr.indexOf(c)==-1){ reset1(); return; } } //計(jì)算器處于正常狀態(tài)時(shí),下面這段代碼會(huì)被執(zhí)行 if ( keys.indexOf(c

10、) != -1 ){ // if c an operator showOp(c); if ( num ) calc.enterNumber(extractNumber(), c); else calc.enterOp(c); reset1(); }else if ( nump(c) && nbuf.length() < prec ) { num = true; buildNumber(c); } } private boolean nump(char c){

11、 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 zeros if (

12、c == '.' ) { // at most one decimal point if ( ! before_point ) return; else before_point = false; } nbuf.append(c); } private void reset1(){ before_point = true; nbuf.setLength(0); num = false; } protected

13、void reset2() { count = 0; in = "0"; d.setText(hl + in + ht); } public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); int i=cmd.charAt(0); if (cmd.equals("reset2")) reset2(); else if (count < 13) { if (count == 0) in = cmd; else

14、 in += cmd; d.setText(hl + in + ht); count++; } enter((char)i); } public void doMouseEntered() { d.setText("選擇數(shù)字進(jìn)行運(yùn)算"); } public void doMouseExited() { d.setText("鼠標(biāo)不在顯示區(qū)域"); } protected int count = 0; protected String in = "0"; protected JLabel d

15、; protected String hl = "

"; protected String ht = "

"; private String prompt="Calc: "; private Calculator calc; private String keys; // keys recognized private StringBuffer nbuf; // buff

16、er for input number private String errorStr; //用于記錄在計(jì)算器處于溢出狀態(tài)時(shí),充許用戶輸入的符號(hào) private boolean errorMode; //用于記錄計(jì)算器當(dāng)前的狀態(tài),正?;蛞绯鰻顟B(tài) private byte prec; // max no of chars displayable private boolean before_point = true; private boolean num = false; } import java

17、.awt.GridLayout; import javax.swing.JFrame; /////// RunCalc.java /////// public class RunCalc { public static void main(String[] args) throws java.io.IOException { CalcEng e = new CalcEng(); CalcFace f = new CalcFace(e.keys(), e.precision()); Calcul

18、ator 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各占一行 keypad.setLayout(new GridLayout

19、(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(ActionLis

20、tener f) { r7 = new JButton("A"); r7.setVerticalTextPosition(JButton.CENTER); r7.setHorizontalTextPosition(JButton.CENTER); r7.setActionCommand("reset2");//計(jì)算機(jī)清歸零 r7.addActionListener(f); add(r7); r9 = new JButton("N"); r9.setVerticalTextPosition(JButton.CENTER); r9.setHor

21、izontalTextPosition(JButton.CENTER); r9.addActionListener(f); add(r9); r1 = new JButton("C"); r1.setVerticalTextPosition(JButton.CENTER); r1.setHorizontalTextPosition(JButton.CENTER); r1.setActionCommand("C"); r1.addActionListener(f); add(r1); r2 = new JButton("+"); r2.

22、setVerticalTextPosition(JButton.CENTER); r2.setHorizontalTextPosition(JButton.CENTER); r2.addActionListener(f); add(r2); r3 = new JButton("-"); r3.setVerticalTextPosition(JButton.CENTER); r3.setHorizontalTextPosition(JButton.CENTER); r3.addActionListener(f); add(r3); r4 =

23、new JButton("*"); r4.setVerticalTextPosition(JButton.CENTER); r4.setHorizontalTextPosition(JButton.CENTER); r4.addActionListener(f); add(r4); r5 = new JButton("/"); r5.setVerticalTextPosition(JButton.CENTER); r5.setHorizontalTextPosition(JButton.CENTER); r5.addActionListener(

24、f); add(r5); r6 = new JButton("="); r6.setVerticalTextPosition(JButton.CENTER); r6.setHorizontalTextPosition(JButton.CENTER); r6.addActionListener(f); add(r6); r8 = new JButton("."); r8.setVerticalTextPosition(JButton.CENTER); r8.setHorizontalTextPosition(JButton.CENTER)

25、; r8.addActionListener(f); add(r8); for (int i = 10; i > 0; i--) { b[i - 1] = new JButton("" + (i-1)); b[i - 1].setVerticalTextPosition(JButton.CENTER); b[i - 1].setHorizontalTextPosition(JButton.CENTER); b[i - 1].setActionCommand("" + (i-1)); b[i - 1].addActionListener(

26、f); add(b[i - 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 JButton[10]; } 六、聯(lián)系方式(e-mail)

展開閱讀全文
溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

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

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

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


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

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲