版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第八章 Applet小應(yīng)用程序,8.1 applet基礎(chǔ),在瀏覽器內(nèi)運(yùn)行的java程序 applet仍然要比HTML、XML以及腳本技術(shù)的任意組合強(qiáng)大的多 跨平臺(tái) 很安全 不能訪觸摸任何本地文件 不能訪問源站點(diǎn)以外的網(wǎng)絡(luò)資源 通過數(shù)字簽名驗(yàn)證的可以做更多事情,當(dāng)applet剛被開發(fā)出來時(shí),只有sun的HotJava能查看包含applet的網(wǎng)頁(yè),Netscape 、IE的加入,使得applet真正流行起來,僅支持Java1.1的大部分功能,解決方法:Java插件,Java2 SDK 自動(dòng)下載插件,一。什么是Japplet(Applet) 一個(gè)Java applet程序中必須有一個(gè)類是JApple
2、t類的子類,稱該子類為Java applet的主類 例:public class DrawImage extends JApplet 主類必須用public來修飾 主類的實(shí)例是一個(gè)容器,二.Applet的運(yùn)行 applet必須嵌入HTML文件中方可執(zhí)行,因此HTML頁(yè)必須告訴瀏覽器需加載哪個(gè)applet及在網(wǎng)頁(yè)中的位置, ,例: ,Applet可在瀏覽器下運(yùn)行 c:1000boy.html 也可用JDK的開發(fā)工具中的appletviewer工具瀏覽Applet效果 c:1000appletviewer boy.html 如果一個(gè)HTML文件 中包含多個(gè)applet,那么運(yùn)行時(shí),將會(huì)彈出多個(gè)窗口
3、,一個(gè)小技巧 可將applet標(biāo)記作為注釋添加到源程序中: /* */ public class Not extends JApplet . 然后用appletviewer來直接運(yùn)行名為Not.java的源程序 appletviewer Not.java 例:Not.java,三.JApplet類 JApplet(Applet)類是所有applet的基類,所有的小應(yīng)用程序都是該類的子類 import java.applet.*; public class Testapplet extends JApplet . ,常用方法:,判斷applet是否年于激活狀態(tài) public boolean is
4、active(),文件定位方法 public URL getCodeBase( ),public Image getImage( URL url) public Image getImage( URL url,String name) public AudioClip getAudioClip( URL url) public AudioClip getAudioClip( URL url,String name),播放聲音、顯示圖象、輸出字符串方法 public void play(URL url) public void loop(URL url) public void drawImag
5、e(img,x,y) public void drawString(str,x,y),applet構(gòu)成方法 public void init( ) public void start( ) public void stop( ) public void destroy( ) public void paintComponent( ) public void repaint( ),8.2一個(gè)applet的生存周期,JApplet中常用的幾種常用方法,public class classname extends JApplet public void init() . public void st
6、art() . public void stop( ) public void destroy( ) . public void paintComponent(Graphics g) . ,init( ) 當(dāng)一個(gè)applet被系統(tǒng)執(zhí)行時(shí),系統(tǒng)將首先自動(dòng)執(zhí)行init( )方法 通常用init( )方法作一些初始化工作。如:創(chuàng)建對(duì)象、設(shè)置初始狀態(tài)、加載圖象等 public void init( ) Init()方法只能被執(zhí)行一次,start( ) 系統(tǒng)在執(zhí)行完init()后,將自動(dòng)執(zhí)行start() public void start( ) . 每當(dāng)離開Applet主頁(yè)后再返回時(shí),系統(tǒng)會(huì)再一次執(zhí)行
7、start( )方法 Start( ) 可被執(zhí)行多次,stop()方法 當(dāng)用戶離開Applet所在的頁(yè)面轉(zhuǎn)到其它頁(yè)面時(shí),stop( )方法被調(diào)用 public void stop( ) 當(dāng)瀏覽器又回到Applet所在頁(yè)時(shí),start( )方法又會(huì)被調(diào)用 stop( )也可被執(zhí)行多次,destroy( ) 系統(tǒng)在瀏覽器關(guān)閉時(shí)才調(diào)用destroy( ) 調(diào)用destroy( )方法時(shí),它將負(fù)責(zé)收回占用的系統(tǒng)資源,paintCompoment ( ) 可用paintCompoment (Graphics g)方法在屏幕上輸出信息,如文字、色彩、圖像等 當(dāng)調(diào)用paintCompoment ()方法時(shí),
8、瀏覽器產(chǎn)生一個(gè)Graphics類的實(shí)例,并傳給方法paintCompoment ( )中的參數(shù)g 利用g可調(diào)用Graphics類中的方法 例: g.drawString(“x=“+x,10,10),當(dāng)applet對(duì)頁(yè)面有重繪的需求時(shí),如:被其它頁(yè)面遮擋之后重新放在最前面、改變?yōu)g覽器的大小、以及applet要顯示信息 paintCompoment()方法都會(huì)被自動(dòng)調(diào)用,PaintCompoment()方法在applet的生命周期內(nèi)可以被多次調(diào)用 例:下面的例子統(tǒng)計(jì)各方法被執(zhí)行次數(shù) MethodCount.java,public void init() initcount=initcount+1;
9、 public void start() startcount=startcount+1; public void stop() stopcount+; public void destroy() destroycount+;,public void paint(Graphics g) paintcount+; g.drawString(initcount =+initcount,10,20); g.drawString(startcount =+startcount,10,40); g.drawString(stopcount =+stopcount,10,60); g.drawString
10、(destroycount=+destroycount,10,80); g.drawString(paintcount =+paintcount,10,100); ,repaint() 你永遠(yuǎn)不要企圖調(diào)用paintCompoment(),一般可通過調(diào)用repaint()方法時(shí),實(shí)現(xiàn)對(duì)paintCompoment()的調(diào)用,repaint執(zhí)行如下; 首先清除paintComponent( )方法以前所畫內(nèi)容 再調(diào)用paintCompoment()方法重畫,例:一個(gè)字符串向下移動(dòng)的例子 MoveString.java MouseDemo.java,8.3Applet的標(biāo)記的屬性-chart.jav
11、a 一.定位屬性 1.widthheight 2.align RIGHT LEFT TOP BOTTOM MIDDLE ABSMIDDLE BASELINE ABSBOTTOM TEXTTOP VSPACEHSPACE,二.代碼屬性 用于告訴瀏覽器如何定位applet代碼,1.code 如果applet類位于com.mycompany中,則: Code=“com/mycompany/Myapplet.class”,2.codebase 此屬性用于applet與HTML不在同一目錄下的情形,如何搜索class文件,appletTest.class位于Myapplet子目錄下,而Myapplet子
12、目錄與HTML文件在同一目錄下 ,三.接收信息至applet中 Applet可以通過使用HTML中的PARAM標(biāo)記獲得內(nèi)嵌在HTML上中的參數(shù). 例:在HTML中定義如下:, ,在applet中可使用JApplet類中的 getParameter()來提取參數(shù)值,Public class FontParameterApplet extends JApplet public void init() String fontName=getParameter(“font”); .,API:public String getParameter(String name),例:chart.java,8.4
13、多媒體,8.4.1 顯示圖象 一.Java支持的主要圖像類型:,GIF JPEG BMP,定義Image對(duì)象 Image picture;,從文件加載圖像getImage()方法 public Image getImage( URL url, String name) 例:picture=getImage( getCodeBase(),”family.jpg”);,二.加載圖象,三.顯示圖像-DrawImage.java Graphics類提供drawImage()方法,可用來繪制圖像,public boolean drawImage( Image img, int x,int y, Imag
14、eObserver observer),該方法應(yīng)在paintComponent()方法中通過參數(shù)g調(diào)用 例:g.drawImage(picture,10,30,this);,例:一個(gè)加載圖像的例子DrawImage.java,可調(diào)整寬度和調(diào)度的drawImage()方法 public boolean drawImage( Image img, int x,int y, int width, int height, ImageObserver observer),采用這些方法顯示圖象時(shí),會(huì)自動(dòng)對(duì)圖象按指定的高度和寬度進(jìn)行拉伸,Image類提供了兩個(gè)方法,常用來和上述方法聯(lián)合使用: getHetg
15、ht()用來獲得圖象的實(shí)際高度 getWidth()用來獲得圖象的實(shí)際寬度,例: img.getHeight(this) img.getWidth(this),8.4.2 播放聲音,一.播放聲音,目前Java僅支持AU、WAVE、MIDI、AIFF格式,AudioClip類用來在Java Applet中播放聲音。該類在java.Applet.audioClip中有定義,二.加載聲音文件,創(chuàng)建對(duì)象: AudioClip 對(duì)象名;,加載 聲音文件 對(duì)象名=getAudioClip(URL url,文件名),例:AudioClip audio; audio=getAudioClip(getCodeb
16、ase( “spacemusic.au”);,三.播放聲音 AudioClip類提供播放方法: play()-播放一遍 loop()-循環(huán)播放 例: audio.play(); audio.loop();,例: 一個(gè)播放聲音的小例子PicSound.java,8.4.3 JMF(Java Media Framwork) Java媒體框架 作用: 1、音頻播放 2、視頻播放: avi,gsm,mpg,mov,rmf,rtp,viv 3、編寫攝像頭拍照程序,JMF下載地址: java-media/jmf/index.jsp,8.4.4 Java 語音API 核心技術(shù):語音識(shí)別和語音合成,語音合成: 用于從文本中產(chǎn)生合成的語音 語音識(shí)別: 從包含語音的音頻輸入中產(chǎn)生文本,Java語音API的基本信息: J,SUN沒有提供Java語音API的實(shí)現(xiàn)工具,常用 的是IBM公司開發(fā)的語音
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 煤礦總工程師每季度組織的災(zāi)害治理方案及措施
- 《光的反射》物理授課課件
- (新)醫(yī)療質(zhì)量安全管理方案(3篇)
- 2025年住院醫(yī)師規(guī)培年度臨床技能考核達(dá)標(biāo)與能力進(jìn)階工作總結(jié)(2篇)
- 2026年兩圓線測(cè)試題及答案
- 銀行合規(guī)監(jiān)督制度
- 2026年會(huì)計(jì)從業(yè)人員資格考試(會(huì)計(jì)基礎(chǔ))練習(xí)試題及答案一
- 車間班組級(jí)安全培訓(xùn)資料課件
- 車間安全知識(shí)培訓(xùn)教案課件
- 急性胰腺炎的識(shí)別與防治科普講座課件模板
- 安徽省合肥市蜀山區(qū)2024-2025學(xué)年上學(xué)期八年級(jí)數(shù)學(xué)期末試卷
- 電商售后客服主管述職報(bào)告
- 十五五安全生產(chǎn)規(guī)劃思路
- 上海證券有限責(zé)任公司校招職位筆試歷年參考題庫(kù)附帶答案詳解
- 剪刀車專項(xiàng)施工方案
- 2024-2025學(xué)年四川省綿陽市七年級(jí)(上)期末數(shù)學(xué)試卷
- 項(xiàng)目預(yù)算管理咨詢方案
- 合成藥物催化技術(shù)
- 貴州藥品追溯管理辦法
- 租車牌車輛抵押合同范本
- 醫(yī)療器械不良反應(yīng)監(jiān)測(cè)管理制度
評(píng)論
0/150
提交評(píng)論