版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、小應(yīng)用程序Applet設(shè)計(jì)一、 課題內(nèi)容和要求內(nèi)容:設(shè)計(jì)和編寫一個可以用鼠標(biāo)操作的Applet小應(yīng)用程序和相應(yīng)的HTML頁面,觀察Applet的執(zhí)行過程,測試程序鼠標(biāo)用戶交互操作的效果。要求:要求學(xué)生能在學(xué)習(xí)和理解課堂學(xué)習(xí)內(nèi)容中JAVA小應(yīng)用程序的基礎(chǔ)上,通過實(shí)驗(yàn),培養(yǎng)學(xué)生將JAVA小應(yīng)用程序相關(guān)知識點(diǎn)(包括JAVA Applet和低級事件處理模型)有機(jī)結(jié)合,設(shè)計(jì)基于WEB瀏覽器的小應(yīng)用程序的能力。二、設(shè)計(jì)思路分析class App:一個Java Applet計(jì)算器的主類public void init():完成初始化appletpublic boolean action():實(shí)現(xiàn)事件處理的方
2、法public void doOperator():運(yùn)算及運(yùn)算結(jié)果輸出操作public void doForeScreen():數(shù)字和小數(shù)點(diǎn)輸出到文本框操作public void doClear():清空操作三、概要設(shè)計(jì) public class App extends Applet TextField tfAnswer;Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision;String OperatorCurrent, Oper
3、atorPre;String ForeScreen, BackScreen;boolean isFloat = false;public void init();public boolean action(Event e, Object o);public void doOperator()public void doForeScreen(String s);public void doClear();事件處理:運(yùn)算及運(yùn)算結(jié)果輸出:四、詳細(xì)設(shè)計(jì) Java代碼:import java.awt.*;import java.applet.*;public class App extends Appl
4、et TextField tfAnswer;/ 定義變量Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision;String OperatorCurrent, OperatorPre;String ForeScreen, BackScreen;boolean isFloat = false;public void init() / 初始化OperatorCurrent = new String();OperatorPre = new
5、 String();ForeScreen = new String(0);/ 保證輸入字符串不為空防止計(jì)算錯誤BackScreen = new String();setBackground(Color.gray);setLayout(null);/ 設(shè)為空布局便于自定義組件位置tfAnswer = new TextField();/ 設(shè)置文本框樣式tfAnswer.setBounds(20, 20, 175, 40);tfAnswer.setFont(new Font(BackScreen, Font.BOLD, 28);add(tfAnswer);tfAnswer.setText(ForeS
6、creen);bClear = new Button(C);/ 設(shè)置按鈕樣式bClear.setBounds(20, 70, 40, 40);add(bClear);bDivision = new Button(/);bDivision.setBackground(Color.green);bDivision.setBounds(65, 70, 40, 40);add(bDivision);bMulti = new Button(*);bMulti.setBackground(Color.green);bMulti.setBounds(110, 70, 40, 40);add(bMulti);
7、bMinus = new Button(-);bMinus.setBackground(Color.green);bMinus.setBounds(155, 70, 40, 40);add(bMinus);b7 = new Button(7);b7.setBounds(20, 115, 40, 40);b7.setBackground(Color.orange);add(b7);b8 = new Button(8);b8.setBackground(Color.orange);b8.setBounds(65, 115, 40, 40);add(b8);b9 = new Button(9);b9
8、.setBackground(Color.orange);b9.setBounds(110, 115, 40, 40);add(b9);bPlus = new Button(+);bPlus.setBackground(Color.green);bPlus.setBounds(155, 115, 40, 85);add(bPlus);b4 = new Button(4);b4.setBackground(Color.orange);b4.setBounds(20, 160, 40, 40);add(b4);b5 = new Button(5);b5.setBackground(Color.or
9、ange);b5.setBounds(65, 160, 40, 40);add(b5);b6 = new Button(6);b6.setBackground(Color.orange);b6.setBounds(110, 160, 40, 40);add(b6);b1 = new Button(1);b1.setBackground(Color.orange);b1.setBounds(20, 205, 40, 40);add(b1);b2 = new Button(2);b2.setBackground(Color.orange);b2.setBounds(65, 205, 40, 40)
10、;add(b2);b3 = new Button(3);b3.setBackground(Color.orange);b3.setBounds(110, 205, 40, 40);add(b3);bEqual = new Button(=);bEqual.setBackground(Color.green);bEqual.setBounds(155, 205, 40, 85);add(bEqual);b0 = new Button(0);b0.setBackground(Color.orange);b0.setBounds(20, 250, 85, 40);add(b0);bPoint = n
11、ew Button(.);bPoint.setBackground(Color.orange);bPoint.setBounds(110, 250, 40, 40);add(bPoint);public boolean action(Event e, Object o) / 實(shí)現(xiàn)事件處理的方法String s = new String();if (e.target = b0) | (e.target = b1) | (e.target = b2)| (e.target = b3) | (e.target = b4) | (e.target = b5)| (e.target = b6) | (e
12、.target = b7) | (e.target = b8)| (e.target = b9) / 獲取數(shù)字按鈕數(shù)據(jù)并在控制臺和文本框輸出if (e.target != bPoint) / 獲取數(shù)字s = (String) o;doForeScreen(s);if (e.target = bPoint) & !ForeScreen.contains(.) / 保證原數(shù)不含小數(shù)點(diǎn)的情況下獲取小數(shù)點(diǎn)并在控制臺和文本框輸出s = (String) o;if (ForeScreen.equals()/ 原來沒有輸入數(shù)據(jù)則用0.doForeScreen(0.); else/ 原來有輸入數(shù)據(jù)則用.doF
13、oreScreen(s);if (e.target = bClear) / 清除按鈕進(jìn)行清除操作doClear();if (e.target = bMulti) | (e.target = bDivision)| (e.target = bPlus) | (e.target = bMinus)| (e.target = bEqual) / 加減乘除等于按鈕獲取運(yùn)算操作符并進(jìn)行運(yùn)算操作if (ForeScreen != ) / 重新輸入數(shù)字進(jìn)行運(yùn)算操作OperatorCurrent = (String) o);doOperator(); else / 沒有重新輸入數(shù)字則作為上一運(yùn)算符-保證不輸入
14、連續(xù)的同一運(yùn)算符OperatorPre = (String) o);return true;public void doOperator() / 運(yùn)算及運(yùn)算結(jié)果輸出操作double dFore, dBack;Double d;if (OperatorPre.equals() / 上一運(yùn)算符沒有則直接輸出BackScreen = ForeScreen;/ 輸入的數(shù)據(jù)轉(zhuǎn)入后臺并清空,用后臺輸出它ForeScreen = ;tfAnswer.setText(BackScreen);repaint(); else / 上一運(yùn)算符存在則運(yùn)算后輸出dFore = (new Double(ForeScree
15、n).doubleValue();dBack = (new Double(BackScreen).doubleValue();ForeScreen = ;/ 運(yùn)算結(jié)果轉(zhuǎn)入后臺并清空,用后臺輸出它BackScreen = tfAnswer.getText();if (OperatorPre.equals(+) d = new Double(dBack + dFore);BackScreen = d.toString();if (OperatorPre.equals(-) d = new Double(dBack - dFore);BackScreen = d.toString();if (Ope
16、ratorPre.equals(*) d = new Double(dBack * dFore);BackScreen = d.toString();if (OperatorPre.equals(/) d = new Double(dBack / dFore);BackScreen = d.toString();tfAnswer.setText(BackScreen);repaint();OperatorPre = OperatorCurrent;/ 現(xiàn)運(yùn)算符變上一運(yùn)算符repaint();public void doForeScreen(String s) / 數(shù)字和小數(shù)點(diǎn)輸出到文本框操作F
17、oreScreen += s;if (ForeScreen.length() 1 & ForeScreen.startsWith(0)& !ForeScreen.contains(.)/ 以0開頭的長度大于一的非小數(shù)去掉開頭的0ForeScreen = ForeScreen.substring(1);tfAnswer.setText(ForeScreen);repaint();public void doClear() / 清空操作OperatorCurrent = ;OperatorPre = ;ForeScreen = 0;BackScreen = ;isFloat = false;tfAnswer.setText(ForeScreen);repaint();Html代碼:JavaApplet計(jì)算器五、測試數(shù)據(jù)及其結(jié)果分析1正常輸入:1.88+99= C .666/33= C 7.33*26= 0.5-1-3= 2結(jié)果:輸出正常。六、調(diào)試過程中的問題 1、一開始計(jì)算器只能在按等號后實(shí)現(xiàn)運(yùn)算沒考慮
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度棉花種植基地合作經(jīng)營合同4篇
- 寵物店裝修墊資合同
- 二零二五版環(huán)保設(shè)施實(shí)時監(jiān)控安裝工程合同3篇
- 通訊設(shè)備居間代理提成承諾
- 廣告經(jīng)營合同
- 房屋租賃定金意向協(xié)議合同范本
- 用能權(quán)交易制度對企業(yè)環(huán)境績效的影響機(jī)制與效應(yīng)研究
- 二零二五年度煤礦安全監(jiān)控系統(tǒng)升級改造合同4篇
- 城市園林中歷史名勝的保護(hù)利用研究
- 2025年度拆遷安置房交易資金監(jiān)管合同4篇
- 自媒體內(nèi)容版權(quán)合同
- 獵聘-2024高校畢業(yè)生就業(yè)數(shù)據(jù)報(bào)告
- 2024虛擬現(xiàn)實(shí)產(chǎn)業(yè)布局白皮書
- 車站值班員(中級)鐵路職業(yè)技能鑒定考試題及答案
- JTG∕T E61-2014 公路路面技術(shù)狀況自動化檢測規(guī)程
- 高中英語短語大全(打印版)
- 軟件研發(fā)安全管理制度
- 三位數(shù)除以兩位數(shù)-豎式運(yùn)算300題
- 寺院消防安全培訓(xùn)課件
- 比摩阻-管徑-流量計(jì)算公式
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗(yàn)
評論
0/150
提交評論