《Java程式设计进阶》PPT课件.ppt_第1页
《Java程式设计进阶》PPT课件.ppt_第2页
《Java程式设计进阶》PPT课件.ppt_第3页
《Java程式设计进阶》PPT课件.ppt_第4页
《Java程式设计进阶》PPT课件.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Ch02JavaApplets,Java程式設計進階(1),2019/12/5,2,Applet,Applets不是完全獨立的應用程式,而是在瀏覽器(或NetscapeNavigater)或JDK(JavaDevelopersKit)提供的appletviewer中執行的程式Applets程式被編譯後,在HTML檔案中加入applet標籤,2019/12/5,3,Applet的執行,之前的Java程式:javacxxx.javajavaxxxJava的applet程式:javacxxx.java將產生的xxx.class內嵌於HTML檔案中,2019/12/5,4,Applet類別繼承關係圖,Java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Paneljava.applet.Applet,2019/12/5,5,Applet架構,pplet衍生自Appplet類別,所以必須引入java.appletimportjava.applet.*;在視窗中執行applets必須載入AWTimportjava.awt.*;建立類別時宣告extendsApplet,表示繼承Applet在Applet類別不再需要main()方法也不使用System.out.println(),而是使用AWT提供的方法paint()Publicvoidpaint(Graphicsg)g.drawString(“Hi,HowAreYou!”,70,100);,2019/12/5,6,範例:Ch04_01.java,importjava.applet.Applet;importjava.awt.*;publicclassCh04_01extendsAppletpublicvoidpaint(Graphicsg)g.drawString(HiHowareyou!,70,100);,2019/12/5,7,範例:Ch04_01.html,Ch04_01.html,2019/12/5,8,Applet元件的屬性,Xxx.class:在xxx.class中含有編譯過的applet類別X,y:定義applet的繪圖區大小(像素)大部份電腦螢幕所支援的解析度為800X600像素,2019/12/5,9,範例:Ch04_02.java,importjava.applet.Applet;importjava.awt.*;publicclassCh04_02extendsAppletpublicvoidpaint(Graphicsg)setBackground(Color.yellow);Fontf=newFont(標楷體,Font.BOLD,20);g.setFont(f);g.setColor(Color.red);showStatus(Java(4);g.drawString(嗨!你好!,70,100);,2019/12/5,10,Applet架構,Applet不是從main()開始執行,它有自己的一套特殊運作機制四個重要的方法:init()start()stop()destroy(),2019/12/5,11,Applet架構,Init():當applet被啟動時,init()是最先被執行的方法,而且它只會被執行一次,所以,可將初始值放在此處Start():它在init()執行後會執行一次,但是當網頁被離開後,再回來時,start()會被再執行,所以,applet的主程式碼會放在start()Stop():用來停止applet動作,或是網頁要跳去另一個網頁時,會呼叫start()方法Destroy():當確定這個applet不會再用到時,可以呼叫destroy(),2019/12/5,12,Applet架構,Init(),Start(),Stop(),Destroy(),2019/12/5,13,範例:Ch04_03.java,importjava.applet.Applet;importjava.awt.*;publicclassCh04_03extendsAppletStringmessage=啟動/;publicvoidinit()message+=進入init()/;publicvoidstart()message+=進入start()/;publicvoidpaint(Graphicsg)setBackground(Color.yellow);Fontf=newFont(標楷體,Font.BOLD,20);g.setFont(f);g.setColor(Color.red);message+=進入paint()/;g.drawString(message,10,10);,2019/12/5,14,Repaint()和update()方法,當applet要進行重新繪製視窗畫面時,applet先呼叫repaint()方法,repaint()再呼叫update()方法,update()方法再呼叫paint()在一般情況下,我們不用去覆寫repaint()和update()如果,要在程式某個地方,更新或重繪畫面時,只要呼叫repaint()Repaint(longtm)可以強迫在tm毫秒內執行重繪,2019/12/5,15,範例:Ch04_04.java,importjava.applet.Applet;importjava.awt.*;publicclassCh04_04extendsAppletimplementsRunnableFontf=newFont(標楷體,Font.ITALIC,24);Threadt;Stringstr;intm,n=0;publicvoidinit()str=歡迎光臨;publicvoidstart()t=newThread(this);t.start();,publicvoidpaint(Graphicsg)setBackground(Color.cyan);g.setFont(f);if(n+)%2=1)g.setColor(Color.green);elseg.setColor(Color.red);g.drawString(str,30,50);publicvoidrun()while(true)tryt.sleep(200);/每0.2秒執行一次catch(InterruptedExceptione)repaint();,2019/12/5,16,練習一:跑馬燈,修改Ch04_04.java,製作由左向右移動的跑馬燈,2019/12/5,17,標籤屬性,CODEBASE:(非必要)指定applet所在的URL,預設是html所在的位置CODE:(必要)指定要執行的applet名稱*.classALT:(非必要)當使用者的瀏覽器不支援applet時,要出現的提示語NAME:(非必要)用來applet取一個名字,如此同一個網頁中的applet會知道有其他applet存在WIDTH:(必要)用來設定applet顯示範圍的寬度HEIGHT:(必要)用來設定applet顯示範圍的高度ALIGN:(非必要)調整applet在網頁上的位置VSPACE:(非必要)控制applet垂直間距的像素值HSPACE:(非必要)控制applet水平間距的像素值,2019/12/5,18,設定標籤內的參數,將applet視為方法,所以在html呼叫applet時,可以將一些參數傳給applet,2019/12/5,19,取得參數值getParameter(),Strings=getParameter(Stringn)/n是標籤內的name參數名稱getParameter()方法,可以用來抓取從HTML中param標籤name屬性所代表的value屬性值,2019/12/5,20,範例:Ch04_05.html,Ch04_05.html參數傳遞,2019/12/5,21,範例:Ch04_05.java,importjava.applet.Applet;importjava.awt.*;publicclassCh04_05extendsAppletimplementsRunnableFontf=newFont(標楷體,Font.ITALIC,24);Threadt;Stringstr;intm,n=0;intm_x,m_y;publicvoidinit()str=getParameter(msg);m_x=Integer.parseInt(getParameter(x);m_y=Integer.parseInt(getParameter(y);publicvoidstart()t=newThread(this);t.start();,publicvoidpaint(Graphicsg)setBackground(Color.cyan);g.setFont(f);if(n+)%2=1)g.setColor(Color.green);elseg.setColor(Color.red);g.drawString(str,m_x,m_y);publicvoidrun()while(true)tryt.sleep(200);/每0.2秒執行一次catch(InterruptedExceptione)repaint();,2019/12/5,22,Applet繪圖,2019/12/5,23,顏色常數(java.awt.color),2019/12/5,24,範例:Ch04_06.java,importjava.applet.*;importjava.awt.*;publicclassCh04_06extendsAppletpublicvoidinit()setBackground(Color.yellow);setForeground(Color.blue);publicvoidpaint(Graphicsg)g.drawRoundRect(20,30,80,90,0,0);/長方形g.drawRoundRect(140,30,80,90,50,50);g.drawOval(260,30,90,90);g.drawLine(380,30,480,120);,2019/12/5,25,加入控制項到applet,文字方塊:Textfield文字方塊物件=newTextfield(int字數);add(文字方塊物件);文字方塊物件.addActionListener(this);標籤方塊:Label標籤方塊物件=newLabel(String字串);add(標籤方塊物件);命令按鈕:Button命令按鈕物件=newButton(String字串);add(命令按鈕物件);命令按鈕物件.addActionListener(this);,2019/12/5,26,範例:Ch04_07.java攝氏轉華氏,importjava.applet.*;importjava.awt.event.*;importjava.awt.*;publicclassCh04_07extendsAppletimplementsActionListenerLabellblCelsius,lblFahrenheit;TextFieldtxtCelsius,txtFahrenheit;ButtonbtnTransfer;publicvoidinit()lblCelsius=newLabel(攝氏);lblFahrenheit=newLabel(華氏);txtCelsius=newTextField(20);txtFahrenheit=newTextField(20);btnTransfer=newButton(攝氏轉華氏);add(lblCelsius);add(txtCelsius);add(lblFahrenheit);add(txtFahrenheit);add(btnTransfer);btnTransfer.addActionListener(this);,publicvoidactionPerformed(ActionEvente)floatf=Integer.parseInt(txtCelsius.getText();f=f*9/5+32;txtFahrenheit.setText(String.valueOf(f);,2019/12/5,27,範例:Ch04_08.java紅綠燈控制,importjava.applet.*;importjava.awt.event.*;importjava.awt.*;publicclassCh04_08extendsAppletimplementsActionListenerButtonbtnRed,btnYellow,btnGreen;intfirstX=65,firstY=60;intsecondX=firstX+60,secondY=60;intthirdX=firstX+120,thirdY=60;ColorfirstC=Color.red;ColorsecondC=Color.gray;ColorthirdC=Color.gray;Stringmsg=紅燈停;,publicvoidinit()setBackground(Color.cyan);btnRed=newButton(紅燈);btnYellow=newButton(黃燈);btnGreen=newButton(綠燈);add(btnRed);add(btnYellow);add(btnGreen);btnRed.addActionListener(this);btnYellow.addActionListener(this);btnGreen.addActionListener(this);,2019/12/5,28,範例:Ch04_08.java紅綠燈控制,publicvoidpaint(Graphicsg)g.drawRect(firstX-20,firstY-20,210,90);/畫空心矩形g.setColor(firstC);/設定第一個圓顏色g.fillOval(firstX,fi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论