西南科技大學(xué)網(wǎng)絡(luò)教育系列課程高級(jí)語(yǔ)程序設(shè)計(jì)Java1.ppt_第1頁(yè)
西南科技大學(xué)網(wǎng)絡(luò)教育系列課程高級(jí)語(yǔ)程序設(shè)計(jì)Java1.ppt_第2頁(yè)
西南科技大學(xué)網(wǎng)絡(luò)教育系列課程高級(jí)語(yǔ)程序設(shè)計(jì)Java1.ppt_第3頁(yè)
西南科技大學(xué)網(wǎng)絡(luò)教育系列課程高級(jí)語(yǔ)程序設(shè)計(jì)Java1.ppt_第4頁(yè)
西南科技大學(xué)網(wǎng)絡(luò)教育系列課程高級(jí)語(yǔ)程序設(shè)計(jì)Java1.ppt_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

西南科技大學(xué)網(wǎng)絡(luò)教育系列課程 高級(jí)語(yǔ)程序設(shè)計(jì)(Java),第十二章 Java Applet,Applet概述 Applet是用Java編寫(xiě)的小應(yīng)用程序,它能夠嵌入在HTML網(wǎng)頁(yè)中,并由支持Java的Web瀏覽器來(lái)解釋執(zhí)行。 Applet最早是用于應(yīng)用程序的發(fā)布,這一功能已被Java Web Start代替。 現(xiàn)廣泛用于主從架構(gòu)或網(wǎng)絡(luò)程序設(shè)計(jì)。,Applet的工作原理,首先確定Applet的存在(*.class文件)。 使用Applet,格式: ,Applet和HTML,定義調(diào)用的Applet程序名,注意全名和大小寫(xiě)。,瀏覽器不支持Applet時(shí),顯示的代替文字。,Applet的安全機(jī)制 從Web上下載的java applet是在稱為沙箱 (sandbox)的安全環(huán)境中運(yùn)行。 applet絕不能運(yùn)行任何本地可執(zhí)行程序。 applet除了可以與從中下載它們的服務(wù)器進(jìn)行通信外,不能與任何主機(jī)通信。 applet不能讀寫(xiě)本地計(jì)算機(jī)的文件系統(tǒng)。 applet不能獲取除版本等以外的任何關(guān)于本地計(jì)算機(jī)的信息。 applet彈初式窗口都回帶有一個(gè)警告信息。 applet可以使用簽名方式來(lái)獲取更大的權(quán)限。,Applet的生命周期,Applet主要方法 根據(jù)執(zhí)行過(guò)程中發(fā)生的事件來(lái)定義生命周期,對(duì)于每個(gè)事件將自動(dòng)調(diào)用一種方法。 init():初始化時(shí)調(diào)用,主要是創(chuàng)建所需要的對(duì)象、設(shè)置初始狀態(tài)、設(shè)置參數(shù)等。 start():調(diào)用init方法之后自動(dòng)調(diào)用這個(gè)方法。 stop():退出網(wǎng)頁(yè)時(shí)停止執(zhí)行Applet程序。 destroy():離線時(shí)釋放本對(duì)象及其相關(guān)的資源。 paint(Graphics g):繪制Applet圖形。,Applet圖形的顯示和刷新 Applet圖形的顯示和刷新由三個(gè)方法完成:paint(),repaint(),update(),都是從ponent類繼承來(lái)的 Applet圖形的顯示和刷新由一個(gè)獨(dú)立線程控制,稱為AWT線程 如果Applet部分顯示內(nèi)容被其他窗口覆蓋,那么其他窗口移開(kāi)或關(guān)閉時(shí),曾被覆蓋部分必須重畫(huà),此時(shí)AWT線程會(huì)自動(dòng)調(diào)用paint()方法 程序更新顯示內(nèi)容,可以使用repaint()方法通知系統(tǒng)要更新顯示的內(nèi)容,此時(shí)AWT線程會(huì)自動(dòng)調(diào)用update()方法清空當(dāng)前畫(huà)面,然后調(diào)用paint()方法繪制新的內(nèi)容,Applet的創(chuàng)建 編寫(xiě)Applet時(shí),必須注意下列問(wèn)題 在Applet原程序文件中的開(kāi)始,必須包含一些包,即有如下語(yǔ)句: import java.applet.* 或 import java.applet.Applet,必須有一個(gè)類聲明為public,而且文件名必須與類名保持一致,該類必須繼承自java.applet.Applet,完整的聲明如: public class MyFirstApplet extends Applet,Applet的結(jié)構(gòu),import java.awt.*; import java.applet.*; public class AppletClassName extends Applet public void init() /初始化變量、裝載圖片、讀取參數(shù)值等 public void start() /啟動(dòng)程序執(zhí)行或恢復(fù)程序執(zhí)行 public void stop() /掛起正在執(zhí)行的程序,暫停程序的執(zhí)行 public void destroy() /終止程序的執(zhí)行釋放資源 public void paint(Graphics g) /完成繪制圖形等操作 ,import java.awt.Graphics; import java.applet.Applet; public class JavaApplet extends Applet String print_text; public void init() print_text = “Java Applet“; public void paint(Graphics g) g.drawString(print_text, 20, 20); ,Applet示例,重寫(xiě)了Applet類的init( ) 方法。,覆蓋了Applet類的paint( )方法。,用于在屏幕上給定的位置繪制字符串,Applet 和Application,網(wǎng)頁(yè)向Java Applet傳值,在超文本中使用若干個(gè)標(biāo)志把值傳遞到Java Applet中,實(shí)現(xiàn)動(dòng)態(tài)地向程序傳遞信息,不必重新編譯程序,便于程序的維護(hù)和使用。,如: ,public String getParameter(String name) 如:String s1 = this. getParameter(“girl”);,Java Applet中播放聲音,用Java可以編寫(xiě)播.au .aiff .wav .midi .rfm格式的音頻。 在Java Applet中播放聲音,可以使用Applet的一個(gè)方法: 靜態(tài)的方法: newAudioClip(URL url,String name) 實(shí)例方法: getAudioClip(Url url,String name) 處理聲音文件的方法 play() 播放聲音文件 loop() 循環(huán)播放 stop() 停止播放。,Java Applet中使用AWT組件,Applet類是容器類Container的間接子類。 可以在這個(gè)容器中添加組件,處理組件事件。 目前的瀏覽器僅僅支持JDK1.1版本中的類庫(kù),Java Applet中只能使用JDK1.1版本公布的java.awt包中的組件。,如: public void init() add(new Button(“Test”); ,Applet的默認(rèn)布局為FlowLayout,Java Applet中使用Swing組件,SDK1.4以后的版本,瀏覽器中的JVM就會(huì)被更新為當(dāng)前SDK所帶的JVM。 瀏覽器就可以使用javax.awing包中的組件。 使用javax.swing包中的組件時(shí),Java Applet的主類應(yīng)當(dāng)是JApplet的子類。 JApplet是Applet的一個(gè)直接子類,在javax.swing包中。,JApplet新特性: 不可以把組件直接添加到JApplet容器中。 JApplet容器也含有一個(gè)稱為內(nèi)容面板的容器,應(yīng)當(dāng)把組件添加到內(nèi)容面板中。 不能為JApplet容器設(shè)置布局,而應(yīng)當(dāng)為JApplet容器的內(nèi)容面板設(shè)置布局。 內(nèi)容面板的默認(rèn)布局是BorderLayout布局。 JApplet容器通過(guò)調(diào)用方法: getContentPane(),得到內(nèi)容面板。,Java Applet中繪制圖形,繪制文本 使用drawString方法在屏幕上顯示字符串對(duì)象。 drawString(String s, int x, int y):從參數(shù)x、y指定的坐標(biāo)位置處,從左向右繪制參數(shù)s指定的字符串。 drawChars(char data ,int offset, int length, int x, int y):繪制data數(shù)組中的部分字符。 length指定數(shù)組中要連續(xù)繪制的字符的個(gè)數(shù)。 offset是首字符在數(shù)組中的位置 。,繪制直線 drawLine(int x1,int y1,int x2,int y2):繪制從起點(diǎn)(x1,y1)到終點(diǎn)(x2,y2)的直線段。 繪制矩形 drawRect (int x,int y,int w,int h):繪制矩形。 fillRect (int x,int y,int w,int h):填充矩形。 矩形的左上角的坐標(biāo)由參數(shù)x、y指定,矩形的寬和高由參數(shù)w、h指定。,繪制圓角矩形 drawRoundRect(int x,int y,int w,int h,int arcW,int arcH):繪制圓角矩形 fillRoundRect(int x,int y,int w,int h,int arcW,int arcH):填充圓角矩形 參數(shù)arcW、arcH指定圓角的尺寸。 繪制橢圓 drawOval(int x,int y,int w,int h):繪制橢圓。 fillOval(int x,int y,int w,int h):繪制填充橢圓。 x、y給出橢圓距x軸和y軸的距離,參數(shù)w、h給出橢圓的寬和高。,繪制圓弧 圓弧就是某個(gè)橢圓的一部分。 drawArc(int x,int y,int width,int height,int starAngle, int arcAngle):繪制圓弧。 fillArc(int x,int y,int width,int height,int starAngle,int arcAngle):填充圓弧。 x、y、width、heigth指定圓弧的位置和大小。 參數(shù)starAngle和 arcAngle的單位都是“度”。 參數(shù)starAngle,arcAngle表示從starAngle的角度開(kāi)始逆時(shí)針或順時(shí)針?lè)较虍?huà)arcAngle度的弧。,正值,負(fù)值,Java Applet中繪制圖像,圖像是矩形內(nèi)的一組像素。 Java支持兩種主要的圖像格式: GIF JPEG Applet類提供了一個(gè)重要的方法: public Image getImage(URL url,String name):返回可以被顯示在屏幕上的Image對(duì)象的引用,即將URL地址中,文件名為name的文件加載的內(nèi)存,并返回該內(nèi)存的首地址。,Java Applet顯示java目錄中的圖像的方法: public URL getCodeBase():返回一個(gè)URL對(duì)象,該對(duì)象包含Java Applet 所在的目錄。,public URL getDocumentBase():返回一個(gè)嵌入Java Applet的網(wǎng)頁(yè)的URL對(duì)象。 public boolean drawImage(Image img,int x,int y,ImageObserver observer):繪制img對(duì)象。 x,y是要繪制指定圖像的矩形的左上角所處的位置。 observer是加載圖像時(shí)的圖像觀察器。,Applet類已經(jīng)實(shí)現(xiàn)了ImageObserver接口,它可以作為加載圖像時(shí)的圖像觀察器。 將this作為最后一個(gè)參數(shù)傳遞給drawImage()便可將Applet對(duì)象傳遞過(guò)去, public void paint(Graphics g) g.drawImage(img,0,3,this); ,public boolean drawImage(Image img,int x,int y,int width ,int height , ImageObserver observer):在矩形內(nèi)繪制加載的圖像。,獲取圖像的屬性: img.getHeight(this):獲取被加載的圖像的高。 img.getWidth(this):獲取被加載的圖像的寬。,例: public void init() img1 = getImage(getCodeBase(),“tom.jpg“); img2 = getImage(getCodeBase(),“jerry.jpg“); public void paint(Graphics g) g.drawImage(img1,0,0,100,100,this); g.drawImage(img2,120,120,200,100,this); ,Java Applet 播放幻燈片和動(dòng)畫(huà),Java Applet播放幻燈片 在HTML中播放圖像切換幻燈片。 Java Applet播放動(dòng)畫(huà) 使用多線程技術(shù)實(shí)現(xiàn)Applet中動(dòng)畫(huà)的播放。 動(dòng)畫(huà)是一種錯(cuò)覺(jué),運(yùn)動(dòng)的錯(cuò)覺(jué)是通過(guò)快速顯示一組圖片造成的,而這些圖片在內(nèi)容上只有微小的變化。,Java Applet的網(wǎng)絡(luò)功能,使用URL 常用方法 public AppletContext getApp

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論