




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第13章章 Java Applet 本章導(dǎo)讀nJava Applet的運行原理n在網(wǎng)頁向Java Applet傳值n在Java Applet中播放聲音n在Java Applet中使用組件n在Java Applet中繪制圖形圖像n在Java Applet中播放幻燈片nJava Applet 網(wǎng)絡(luò)聊天室113.1 Java Applet的運行原理 _ 1 Java Applet概述 1Java Applet概述概述 一個Java Applet也是由若干個類組成的,一個Java Applet不再需要main方法,但必須有且只有一個類擴展了Applet類,即它是Applet類的子類,我們把這個類稱為
2、這個Java Applet的主類。 Java Applet的主類必須是public的。Applet類是java.applet包提供的類,Applet類是Container類的一個間接子類,因此Java Applet的實例是一個容器。 Java Applet屬于Java嵌入式開發(fā)的一種,嵌入式程序的主類的實例化由嵌入該程序的環(huán)境平臺中JVM負責。這樣一來,我們必須向這樣的平臺提供相應(yīng)的配置文件,嵌入該程序的環(huán)境平臺使用配置文件通知平臺中的JVM建立主類的對象,并產(chǎn)生相應(yīng)的一些行為。 Applet類有5個常用的方法,它們是init (),start(),stop(),destroy()和和pain
3、t(Graphics g)。213.1 Java Applet的運行原理 _ 2 運行原理 2 運行原理運行原理 例例13-1說明Java Applet運行原理,效果如圖13.1所示。 3 (1) 網(wǎng)頁的編寫 編寫一個超文本文件,告訴瀏覽器來運行這個Java Applet。 假設(shè)Applet主類的名字是Example13_1,下面是一個簡單的html文件“l(fā)ike.html”。like.html文件告訴瀏覽器運行主類是Example13_1的Java Applet。 網(wǎng)頁的最終目的是讓其他客戶通過網(wǎng)絡(luò)來訪問,下載到客戶端執(zhí)行??梢杂肳eb發(fā)布管理器,比如,IIS或Tomcat,將含有Java
4、Applet網(wǎng)頁所在的目錄設(shè)成Web服務(wù)目錄。例如,我們將like.html所在的文件夾D:ch13設(shè)為Web服務(wù)目錄,虛擬目錄名稱是hello,那么其他用戶就可以在其瀏覽器的地址欄中鍵入該服務(wù)器的IP地址、虛 擬 目 錄 名 稱 訪 問 含 有 J a v a A p p l e t 的 網(wǎng) 頁 , 如00/hello/like.html00/hello/like.html。 Java Applet的字節(jié)碼文件會下載到客戶端,由客戶端的瀏覽器負責運行。超文本文件like.html可以被看成是運行環(huán)境執(zhí)行Java Applet
5、所要求的配置文件。 4 (2) Java Applet的生命周期 一個Java Applet的執(zhí)行過程稱為這個Java Applet的生命周期。一個Java Applet的生命周期會涉及如下方法的調(diào)用執(zhí)行init()init(),start()start(),stop()stop(),destroy()destroy()和和paint(Graphics g)paint(Graphics g)。 當瀏覽器執(zhí)行l(wèi)ike.html,發(fā)現(xiàn)有applet標記時,瀏覽器內(nèi)置的JVM將創(chuàng)建主類Example13_1的一個對象,它的大小由超文本文件like.html中的width和height來確定。由于Ap
6、plet類也是Container的間接子類,因此主類的實例也是一個容器,容器有相應(yīng)的坐標系統(tǒng),單位是像素,原點是容器的左上角。該容器的默認布局是FlowLayout布局,被自動添加到瀏覽器的桌面上。瀏覽器內(nèi)置的JVM創(chuàng)建了主類Boy對象后,立刻通知這個對象調(diào)用init()方法完成必要的初始化工作。該對象接著自動調(diào)用start()方法。當瀏覽器離開Java Applet所在的頁面轉(zhuǎn)到其他頁面時,主類創(chuàng)建的對象將調(diào)用stop()方法。當瀏覽器結(jié)束瀏覽時,主類創(chuàng)建的對象自動執(zhí)行destroy()方法,結(jié)束Java Applet 的生命。 paint(Graphics g)方法可以使一個Java Ap
7、plet在容器上顯示某些信息,如文字、色彩、背景或圖像等。瀏覽器的Java運行環(huán)境產(chǎn)生一個Graphics類的實例,并傳遞給方法paint中的參數(shù)g。513.1 Java Applet的運行原理 _ 3關(guān)于repaint()方法和update(Graphics g) 3關(guān)于關(guān)于repaint()方法方法update(Graphics g) repaint()方法和update(Graphics g)是Component類中的一個方法。當調(diào)用repaint()方法時,程序首先清除paint()方法以前所畫的內(nèi)容,然后再調(diào)用paint()方法。 實際上,當我們調(diào)用repaint()方法時,程序自動
8、去調(diào)用update(Graphics g)方法,瀏覽器的Java運行環(huán)境產(chǎn)生一個Graphics類的實例,傳遞給方法update(Graphics g)中的參數(shù)g。這個方法的功能是清除paint()方法以前所畫的內(nèi)容,然后再調(diào)用paint()方法。因此,我們可以在子類中重寫update()方法(即隱藏父類的方法),根據(jù)需要來清除哪些部分或保留哪些部分。 例13-2在paint()方法中使用了repaint()方法,因此每當Java Applet調(diào)用paint()方法時,就會調(diào)用update()方法。程序重寫了update()方法,清除paint()方法所繪制的部分內(nèi)容,并緊接著再調(diào)用paint
9、()方法。613.2 Java Applet中播放聲音 用Java可以編寫播放AU、AIFF、WAV、MIDI、RM格式的音頻。AU格式是Java早期惟一支持的音頻格式。要在Java Applet中播放聲音,可以使用Applet類的一個靜態(tài)的方法(類方法):newAudioClip(URL url,String name)newAudioClip(URL url,String name)或Applet類的實例方法getAudioClip(Url url,String name)getAudioClip(Url url,String name)根據(jù)參數(shù)url提供的地址和該處的聲音文件name,可
10、以獲得一個用于播放的音頻對象(AudioClip類型對象)。這個音頻對象可以使用下列方法來處理聲音文件: play() 播放聲音文件name。 loop() 循環(huán)播放name。 stop() 停止播放name。 例例13-3 播放聲音 。713.3 在網(wǎng)頁向Java Applet傳值 我們可以在超文本中使用若干個標志把值傳遞到Java Applet中,這樣就實現(xiàn)了動態(tài)地向程序傳遞信息,不必重新編譯程序,便于程序的維護和使用。 例例13-4 在網(wǎng)頁向Java Applet傳值 。813.4 在Java Applet中使用組件 Applet類是容器的間接子類,因此我們可以在這個容器中添加組件,處理
11、組件事件,完成一些工作。如果沒有更新瀏覽器內(nèi)置的JVM,Java Applet中只能使用JDK 1.1版本公布的java.awt包中的組件,如Button,TextField,TextArea等。 例例13-5中中,我們把Java Applet的布局設(shè)置為BorderLayout布局,效果如圖13.2所示。Java Applet的中心和北面又分別嵌套了面板(Panel創(chuàng)建的對象)centerPanel和northPanel。centerPanel面板的布局是CardLayout布局、northPanel的布局是默認的FlowLayout布局。在northPanel中添加了兩個按鈕,center
12、Panel面板中又嵌套了兩個不同的容器,作為centerPanel 中的“卡片”,單擊相應(yīng)的按鈕時,centerPanel面板將顯示相應(yīng)的“卡片”,兩張卡片分別負責計算圓和三角形的面積。 例例13-6(效果如圖13.3所示)在JApplet的內(nèi)容面板的中心添加了JTree組件,該組件用來顯示日歷。網(wǎng)頁將年份傳值給Japplet,在內(nèi)容面板的北面添加了兩個按鈕,兩個按鈕分別負責向前和向后翻動月份;在內(nèi)容面板的南面添加了1個標簽,用來顯示月份和年份。該例子中用到了Calendar類的許多屬性和功能。9例13-5,13-6 運行效果 圖13.2,13.31013.5 在Java Applet中繪制圖
13、形 _1 1繪制文本繪制文本drawstring() 方法可以在屏幕上顯示串對象。drawString(String s,int x,int y)方法從參數(shù)x、y指定的坐標位置處,從左向右繪制參數(shù)s指定的字符串。drawChars(char data,int offset, int length, int x, int y)方法繪制data數(shù)組中的部分字符,length指定數(shù)組中要連續(xù)繪制的字符的個數(shù),offset是首字符在數(shù)組中的位置。2繪制直線繪制直線drawLine(int x1,int y1,int x2,int y2)方法繪制從起點(x1,y1)到終點(x2,y2)的直線段。3繪制矩
14、形繪制矩形drawRect (int x,int y,int w,int h)方法繪制矩形,fillRect (int x,int y,int w,int h)方法填充矩形。矩形的左上角的坐標由參數(shù)x和y指定,矩形的寬和高由參數(shù)w和h指定。4繪制圓角矩形繪制圓角矩形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指定圓角的尺寸,見圖圖13.4中的中的4個黑角部分。
15、11圖13.41213.5 在Java Applet中繪制圖形_2 6繪制圓弧繪制圓弧 圓弧就是某個橢圓的一部分。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的單位都是“度”。而起始角度的0是3點鐘的方位。參數(shù)starAngle和arcAngl
16、e表示從starAngle的角度開始逆時針或順時針方向畫arcAngle度的弧,當arcAngle是正值時為逆時針,否則為順時針。starAngle的值可以是負值,如-90是6點鐘的方位。7繪制多邊形繪制多邊形drawPolygon(int xPoints, int yPoints, int nPoints)方法繪制多邊形。fillPolygon(int xPoints, int yPoints, int nPoints)方法填充多邊形。 參數(shù)數(shù)組xPoint和yPoint組成多邊形的頂點坐標,nPoints是頂點的數(shù)目。 注:注:Java自動閉合多邊形,程序總是把最后的頂點和第一個頂點連接起
17、來。 例例13-7繪制了一些基本圖形,效果如圖如圖13.5所所示。13例例13-7機制機制運行效果圖13.51413.6 在Java Applet中繪制圖像 圖像是矩形內(nèi)的一組像素。Java支持主要兩種圖像格式GIF(Graphics Interchang Format)和JPEG(Join Phtographic Expert Group)。public Image getImage(URL url,String name) Applet類提供的方法,返回可以被顯示在屏幕上的Image對象的引用。 public URL getCodeBase()從Applet繼承的方。該方法返回一個URL對
18、象。 public URL getDocumentBase()該方法返回一個URL對象, public boolean drawImage(Image img,int x,int y,ImageObserver observer) Graphics類提供。如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)繪制加載的圖像。如果不想讓圖像有比例上的變化,在繪制之前可以通過Image類提供的方法獲取被加載的圖像的寬和高,如img.getHeight(this); img.getWidth(t
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村土地買賣合同范本
- 農(nóng)村建筑施工合同范本
- 買賣冬蟲夏草合同范本
- 勘界測繪合同范例
- 再婚買房合同范本
- 個體簡易合同范本
- 包工安裝護欄合同范本
- 單位銷售崗位勞動合同范本
- 俱樂部裝修合同范本
- 養(yǎng)殖合作建設(shè)合同范本
- DD 2014-11 地面沉降干涉雷達數(shù)據(jù)處理技術(shù)規(guī)程
- 咖啡與茶文化培訓(xùn)1
- 一+《展示國家工程++了解工匠貢獻》(教學(xué)課件)-【中職專用】高二語文精講課堂(高教版2023·職業(yè)模塊)
- DIY服裝營銷計劃書
- 全國教育科學(xué)規(guī)劃課題申報書:71.《教師在教育數(shù)字化轉(zhuǎn)型中的作用及其實現(xiàn)路徑研究》
- 非標設(shè)備合同范本
- 訂單采購模板
- 輸電線路組成(金具、絕緣)
- 瀝青混凝土拌合站吊裝計算書
- 安全生產(chǎn)規(guī)章制度和崗位操作規(guī)程的目錄清單及內(nèi)容(無倉儲經(jīng)營單位)
- 餐飲合伙聯(lián)營協(xié)議書范本
評論
0/150
提交評論