版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 佛山科學(xué)技術(shù)學(xué)院可視化編程技術(shù)課程設(shè)計報告微波爐烹調(diào)倒計時設(shè)計學(xué)生姓名:葉惠東 學(xué) 號:2011914205年級專業(yè):11級教育技術(shù)學(xué)2班指導(dǎo)老師: 容汝佳學(xué) 院: 教育科學(xué)學(xué)院廣東佛山提交日期:2013年6月目 錄1. 前言22概要設(shè)計3 2.1 開發(fā)環(huán)境 3 2.2 模擬微波爐烹調(diào)食物倒計時過程的功能3 2.3 界面設(shè)計 3 2.4 類的框架結(jié)構(gòu)圖 43. 詳細設(shè)計 4 3.1 使用的JAVA類的說明 4 3.2 類的主要方法 53.2.1按鈕運作處理53.2.2時間運作處理63.2.3外觀處理63.2.5 程序流程圖 8 4. 運行過程85. 源程序9參考文獻27設(shè)計總結(jié)271摘要:該
2、程序是一個圖形界面的簡單的java模擬微波爐烹調(diào)食物倒計時,具有良好的界面,使用人員能快捷簡單地進行操作。其操作方法簡便易學(xué),讓大眾都能容易接受。時間的選擇從時精確到秒,讓烹飪者可以有很好的選擇,精確到秒,讓食物的美味做到極致。只需通過調(diào)節(jié)時間,當(dāng)食物烹飪時間到了,就會有燈光與音樂的提醒,讓烹飪者在期間安心去烹調(diào)其它的食物。關(guān)鍵字:java程序,微波爐,倒計時,事件,方法1 前言隨著科學(xué)技術(shù)的不斷發(fā)展,傳統(tǒng)的烹飪的方法已經(jīng)遠遠不能滿足我們的需要了。所以我編寫一個與日常生活相關(guān)的微波爐烹調(diào)食物倒計時,這是一個實用簡單的烹調(diào)食物倒計時,以滿足在現(xiàn)代烹飪的需求。Java是由Sun公司開發(fā)的新一代純面
3、向?qū)ο蟮木W(wǎng)絡(luò)編程語言。其目標是建立一種在任意種機器、任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中運行的軟件,實行所謂的“程序?qū)懸淮?,到處運行”的目標。正因為如此,Java已成為當(dāng)今Internet上最流行、最受歡迎的一種程序開發(fā)語言。Java開發(fā)小組把Java按特性分為基本版、移動版、企業(yè)版,每個版本有一個軟件開發(fā)包。Java基本版本叫Java 2標準版(Java 2 Standard Edition,J2SE),它包含建立Java應(yīng)用程序或者是Applet所需的應(yīng)用程序編程接口(API)。Java 2移動版(The Java 2 Mobile Edition,J2ME)包含創(chuàng)建無線Java應(yīng)用程序的API。還
4、有Java 2企業(yè)版(The Java 2 Enterprise,J2EE)是J2SE的增強版本,包含建立多層架構(gòu)應(yīng)用程序API。Java語言是由C+語言發(fā)展起而來的,是一種徹底的面向?qū)ο蟮某绦蛟O(shè)計語言。作為一種純面向?qū)ο蟮某绦蛟O(shè)計語言,它非常適合大型軟件的開發(fā)。Java語言去掉了C+語言的一些容易引起錯誤的特性。Java語言的特點有:面向?qū)ο?、跨平臺、安全性、多線程和圖形功能強。2 概要設(shè)計2.1開發(fā)環(huán)境 開發(fā)平臺:Microsoft Windows XP Professional Service Pack 2 開發(fā)工具:JBuilder 2007 + JDK 1.6.0_022.2計算器功
5、能功能 1:平日顯示器顯示的是一個笑臉及歡迎使用微波爐的文字。功能2:按下數(shù)字鍵,時間框上就會顯示將要烹飪的時間,從小時到分再到秒。 功能 3:當(dāng)按下“開始”鍵,微波爐就會開始運作,指示燈顯示正在烹飪的黃色。 功能 4:當(dāng)按下“停止”鍵,微波爐就會停止運作,指示燈顯示不在烹飪狀態(tài)的灰色。 功能 5:當(dāng)按上“清零”鍵,微波爐就會把先前調(diào)好的時間全部會清除,烹飪的時間可以重新 調(diào)節(jié)。功能 5:當(dāng)烹飪時間到了,指示燈就會顯示不在烹飪狀態(tài)的灰色,同時放出提示音樂。2.3界面設(shè)計微波爐烹飪食物倒計時面板2.4類的框架結(jié)構(gòu)圖3
6、詳細設(shè)計3.1模擬微波爐烹調(diào)食物倒計時設(shè)計使用的Java類的說明類名: public A()作用: 構(gòu)造函數(shù)類名: public void init()作用: 該方法用于初始化成員變量及添加各組件 類名:public void run()作用: 實現(xiàn)接口接口Runnable的方法類名: public void setEnabled(boolean bool)作用: 設(shè)置組件的使用狀態(tài),true:可以使用,false:禁止使用類名: public void setNum()作用: 設(shè)置定時器和計時器類名: public void paint(Graphics h)作用: 設(shè)定歡迎語和笑臉類名:
7、pub public void setColor(Color c)作用: 設(shè)置組件的“指示燈”標簽的邊框及前景色類名: public void actionPerformed(ActionEvent ae)作用: 事件處理3.2類的事件處理3.2.1按鈕運作處理public void actionPerformed(ActionEvent ae) /當(dāng)用戶點擊“開始”按鈕時if(ae.getActionCommand ().equals ("開始")/當(dāng)所預(yù)定的時間不為“0”時才可響應(yīng)“開始”按鈕事件if(!tf.getText ().equals ("00:00
8、") t = new Thread(this);/創(chuàng)建一個線程類對象 t.start ();/啟動線程 烹調(diào)開始 setColor(Color.YELLOW);/烹調(diào)開始 設(shè)置指示燈顏色為“YELLOW”黃色setEnabled(false);/禁用按鈕功能b11.setText ("停止"); /設(shè)置按鈕文本 為"停止"/當(dāng)用戶點擊“停止”按鈕時else if(ae.getActionCommand ().equals ("停止") t.stop ();/終止線程 烹調(diào)結(jié)束 setEnabled(true);/啟用按鈕功能
9、setColor(Color.GRAY);/烹調(diào)結(jié)束 設(shè)置指示燈顏色為“GRAY”灰色setNum();/計時清零b11.setText ("開始");/設(shè)置按鈕文本 為"開始" /當(dāng)用戶點擊“清零”按鈕”時else if(ae.getActionCommand ().equals ("清零")setNum();/計時清零 /當(dāng)用戶點擊數(shù)字按鈕時elseString s = ae.getActionCommand ();/相當(dāng)于按鈕上的文本內(nèi)容int i = Integer.parseInt (s);/類型轉(zhuǎn)換:String-int
10、/num0num3分別是分鐘第一,二個數(shù)和秒鐘第一,二個數(shù) if(num0=-1)/=1 表示還沒有設(shè)置分鐘第一個數(shù) if(i<6)/分鐘不能超過59,所以第一個數(shù)字不能大于6 tf.setText(i+"0:00");/比如"30:00" num0 = i;/存儲分鐘第一個數(shù)"3" else if(num1=-1)/同上 / 分鐘第二個數(shù)從09沒限制 tf.setText(num0+""+i+":00"); num1 = i; else if(num2=-1)/. if(i<6)
11、tf.setText(num0+""+num1+":"+i+"0"); num2 = i; else if(num3=-1) tf.setText(num0+""+num1+":"+num2+""+i); num3 = i; 3.2.2時間運作處理public void run()for(int i=0;i<4;i+)/因為初始化是-1,當(dāng)用戶沒有全部重置計時器的四個數(shù)時,將-1設(shè)為0if(numi=-1)numi = 0; while(true) tryThread.
12、sleep (1000);/休眠一秒catch(InterruptedException ie)ie.printStackTrace (); if(num3!=0)/秒鐘第二個數(shù)不為"0"num3-;System.out .println("正在加熱中!");else /為"0"num3 = 9; /重置為"9"if(num2!=0)/秒鐘第一個數(shù)不為"0"num2-; System.out .println("正在加熱中!");else /為"0"num
13、2 = 5; /重置為"5"if(num1!=0)/分鐘第二個數(shù)不為"0"num1-;System.out .println("正在加熱中!");else /為"0"num1 = 9; /重置為"9" if(num0!=0)/分鐘第一個數(shù)不為"0"num0-;System.out .println("正在加熱中!");else /都為"0"時,烹調(diào)結(jié)束setColor(Color.GRAY);setEnabled(true);b11.s
14、etText ("開始"); System.out .println("加熱完成!");setNum(); break; String time = num0+""+num1+":"+num2+""+num3;tf.setText (time); /刷新定時器System.out.println("surplus time is: "+time); 3.2.3外觀處理ppublic void init()l1 = new JLabel("美的微波爐");l
15、2 = new JLabel("指示燈");tf = new JTextField(4);tf = new JTextField(3);l2.setFont (new Font(Font.SERIF,Font.BOLD,35);/設(shè)置字體屬性,指示燈tf.setFont (new Font(Font.SERIF,Font.BOLD,35);/顯時器tf.setFont (new Font(Font.SERIF,Font.BOLD,50);/顯時器tf.setBackground (Color.black);/設(shè)置背景色tf.setBackground (Color.GRAY
16、);/設(shè)置背景色tf.setEditable (false);/設(shè)置不可編輯tf.setHorizontalAlignment (SwingConstants.CENTER);/文本內(nèi)容居中顯示tf.setBorder (BorderFactory.createLoweredBevelBorder ();/設(shè)置邊框?qū)傩詐1 = new JPanel(new FlowLayout(FlowLayout.CENTER,25,50);/上的大小p2 = new JPanel(new GridLayout(4,3,5,5);p1.add(l1);p1.add(tf);p1.add(l2);for(in
17、t i=0;i<12;i+)bi = new JButton(si);p2.add(bi);bi.addActionListener (this);b9.setForeground (Color.blue);/設(shè)置前景色,停止b11.setForeground (Color.RED);/開始setColor(Color.GRAY);/方法調(diào)用 設(shè)置顏色,指示燈setNum();/方法調(diào)用 設(shè)置定時器p2.setBorder (BorderFactory.createEtchedBorder (); /p3.setBorder (BorderFactory.createEtchedBord
18、er (); add(p1,BorderLayout.NORTH);/上add(p2,BorderLayout.CENTER);/下/add(p3,BorderLayout.SOUTH);/上3.2.4設(shè)計的總體認識l JAVA設(shè)計的摘要l JAVA設(shè)計的目錄結(jié)構(gòu)l JAVA設(shè)計的概要和詳細設(shè)計l JAVA設(shè)計的版權(quán)意識l JAVA設(shè)計需要編譯的環(huán)境l JAVA設(shè)計的實用性3.2.5程序流程圖圖3繪制模擬微波爐烹調(diào)食物倒計時設(shè)計的PAD圖4運行過程圖4微波爐烹飪食物倒計時過程顯示5 程序清單:/package 模擬微波爐烹調(diào)食物倒計時過程;import java.applet.*;import
19、 java.awt.*;import java.awt.event.*;import java.io.IOException;import javax.sound.sampled.AudioInputStream;import javax.swing.*;import org.omg.CORBA.portable.InputStream;public class A extends JFrame implements ActionListener,Runnable private static final String AudioPlayer = null;AudioClip ac;JLabe
20、l l2,l3;/布局JTextField tf;/接口JPanel p1,p2;/面板容器 JButton b = new JButton13;/按鈕組件 String s = "7","8","9","4","5","6","1","2","3","清零","0","開始"int num = new int4;/儲存分鐘和秒鐘的四個數(shù)字Thread t;
21、/聲明一個線程private JLabel l1;private Label L1;private Panel P1;public A()/構(gòu)造函數(shù) init();this.setTitle ("微波爐烹調(diào)食物控制器");this.pack();/設(shè)置默認大小位置 this.setLocationRelativeTo (null);/窗口居中this.setVisible(true);/this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);/該方法用于初始化成員變量及添加各組件public void init()l1 =
22、new JLabel("美的微波爐");l2 = new JLabel("指示燈");tf = new JTextField(4);tf = new JTextField(3);l2.setFont (new Font(Font.SERIF,Font.BOLD,35);/設(shè)置字體屬性,指示燈tf.setFont (new Font(Font.SERIF,Font.BOLD,35);/顯時器tf.setFont (new Font(Font.SERIF,Font.BOLD,50);/顯時器tf.setBackground (Color.black);/設(shè)置
23、背景色tf.setBackground (Color.GRAY);/設(shè)置背景色tf.setEditable (false);/設(shè)置不可編輯tf.setHorizontalAlignment (SwingConstants.CENTER);/文本內(nèi)容居中顯示tf.setBorder (BorderFactory.createLoweredBevelBorder ();/設(shè)置邊框?qū)傩詐1 = new JPanel(new FlowLayout(FlowLayout.CENTER,25,50);/上的大小p2 = new JPanel(new GridLayout(4,3,5,5);p1.add(l
24、1);p1.add(tf);p1.add(l2);for(int i=0;i<12;i+)bi = new JButton(si);p2.add(bi);bi.addActionListener (this);b9.setForeground (Color.blue);/設(shè)置前景色,停止b11.setForeground (Color.RED);/開始setColor(Color.GRAY);/方法調(diào)用 設(shè)置顏色,指示燈setNum();/方法調(diào)用 設(shè)置定時器p2.setBorder (BorderFactory.createEtchedBorder (); /p3.setBorder
25、(BorderFactory.createEtchedBorder (); add(p1,BorderLayout.NORTH);/上add(p2,BorderLayout.CENTER);/下/add(p3,BorderLayout.SOUTH);/上 /實現(xiàn)接口接口Runnable的方法public void run()for(int i=0;i<4;i+)/因為初始化是-1,當(dāng)用戶沒有全部重置計時器的四個數(shù)時,將-1設(shè)為0if(numi=-1)numi = 0; while(true) tryThread.sleep (1000);/休眠一秒catch(InterruptedExc
26、eption ie)ie.printStackTrace (); if(num3!=0)/秒鐘第二個數(shù)不為"0"num3-;System.out .println("正在加熱中!");else /為"0"num3 = 9; /重置為"9"if(num2!=0)/秒鐘第一個數(shù)不為"0"num2-; System.out .println("正在加熱中!");else /為"0"num2 = 5; /重置為"5"if(num1!=0)/分鐘
27、第二個數(shù)不為"0"num1-;System.out .println("正在加熱中!");else /為"0"num1 = 9; /重置為"9" if(num0!=0)/分鐘第一個數(shù)不為"0"num0-;System.out .println("正在加熱中!");else /都為"0"時,烹調(diào)結(jié)束setColor(Color.GRAY);setEnabled(true);b11.setText ("開始"); System.out .p
28、rintln("加熱完成!");setNum(); break; String time = num0+""+num1+":"+num2+""+num3;tf.setText (time); /刷新定時器System.out.println("surplus time is: "+time); /設(shè)置組件的使用狀態(tài),true:可以使用,false:禁止使用public void setEnabled(boolean bool)for(int i=0;i<11;i+)bi.setEnable
29、d (bool); /設(shè)置定時器和計時器public void setNum()tf.setText("00:00");for(int i=0;i<4;i+)numi = -1;/public void paint(Graphics h) h.drawOval(40,40, 150, 150);h.fillOval(60, 90, 30, 10);h.fillOval(140, 90, 30, 10);h.drawLine(115, 105, 115, 120);h.drawArc(70, 80, 95, 95, 0, -180);String str="歡
30、迎您使用模擬微波爐" +"烹調(diào)食物倒計時!"Font f=new Font("楷體",Font.PLAIN,24);h.setFont(f);FontMetrics fm=getFontMetrics(f);int x=200;int y=70;h.drawString(str, x, y); /設(shè)置組件的“指示燈”標簽的邊框及前景色public void setColor(Color c) l2.setBorder (BorderFactory.createLineBorder (c);l2.setForeground (c);/public
31、 void init1()ac=getAudioClip(getCodeBase(),"sound.wav");private AudioClip getAudioClip(Object codeBase, String string) / TODO Auto-generated method stubreturn null;private Object getCodeBase() / TODO Auto-generated method stubreturn null;public void start()ac.loop();public void stop()ac.st
32、op(); /事件處理public void actionPerformed(ActionEvent ae) /當(dāng)用戶點擊“開始”按鈕時if(ae.getActionCommand ().equals ("開始")/當(dāng)所預(yù)定的時間不為“0”時才可響應(yīng)“開始”按鈕事件if(!tf.getText ().equals ("00:00") t = new Thread(this);/創(chuàng)建一個線程類對象 t.start ();/啟動線程 烹調(diào)開始 setColor(Color.YELLOW);/烹調(diào)開始 設(shè)置指示燈顏色為“YELLOW”黃色setEnabled(
33、false);/禁用按鈕功能b11.setText ("停止"); /設(shè)置按鈕文本 為"停止"/當(dāng)用戶點擊“停止”按鈕時else if(ae.getActionCommand ().equals ("停止") t.stop ();/終止線程 烹調(diào)結(jié)束 setEnabled(true);/啟用按鈕功能setColor(Color.GRAY);/烹調(diào)結(jié)束 設(shè)置指示燈顏色為“GRAY”灰色setNum();/計時清零b11.setText ("開始");/設(shè)置按鈕文本 為"開始" play("sound.wav");/當(dāng)用戶點擊“清零”按鈕”時else if(ae.getActionCommand ().equals ("清零")setNum();/計時清零 /當(dāng)用戶點擊數(shù)字按鈕時elseString s = ae.getActionCommand ();/相當(dāng)于按鈕上的文本內(nèi)容int i = Integer.parseInt (s);/類型轉(zhuǎn)換:String-int /num0num3分別是分鐘第一,
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年保密協(xié)議審查要點
- 2024年合同法培訓(xùn):深入淺出講解
- 2024年市場競爭分析與策略合同
- 2024年工程設(shè)計服務(wù)合同
- 2024北京市電話通信業(yè)務(wù)入網(wǎng)服務(wù)合同
- 2024下載店面租賃合同
- 2024年工程材料供應(yīng)與更換協(xié)議
- 2024-2025學(xué)年新教材高中政治綜合探究1回看走過的路比較別人的路遠眺前行的路練習(xí)含解析部編版必修1
- 2025屆新教材高考生物一輪復(fù)習(xí)第7單元生物的變異和進化第21講生物的進化學(xué)案新人教版
- 2024-2025學(xué)年高中歷史專題八日本明治維新一走向崩潰的幕府政權(quán)1教學(xué)教案人民版選修1
- 養(yǎng)老院膳食營養(yǎng)保障方案
- 陜西省漢中市勉縣第二中學(xué)2024-2025學(xué)年高二上學(xué)期11月期中考試政治試題
- 期中模擬檢測(試題) 2024-2025學(xué)年五年級上冊數(shù)學(xué)北師大版
- 統(tǒng)編版(2024新版)七年級上冊歷史第三單元 秦漢時期:復(fù)習(xí)課件
- 體格檢查神經(jīng)系統(tǒng)檢查課件
- Unit 3 Toys Lesson 1(教學(xué)設(shè)計)-2024-2025學(xué)年人教精通版(2024)英語三年級上冊
- 【核心素養(yǎng)目標】13.3.1.2 等腰三角形的判定教案人教版數(shù)學(xué)八年級上冊
- 2024年秋初中物理八年級上冊教學(xué)設(shè)計(教案)第5節(jié) 跨學(xué)科實踐:制作望遠鏡
- 文學(xué)閱讀與創(chuàng)意表達任務(wù)群下的教學(xué)設(shè)計六上第四單元
- 六年級語文上冊18.《書湖陰先生壁》課件
- 2024管道焊后熱處理工藝
評論
0/150
提交評論