一、Java Applet的運作原理與生命週期
1.Applet嵌入在HTML頁面中,並由applet的容器(appletviewer或Web瀏覽器)執行.Apple
## t 運行由瀏覽器控制,不由Applet中的程式碼控制.當瀏覽器載入包含由Applet的Web頁面時,它將產生一個Applet類別的物件,然後利用 Applet類別物件的五個public的void方法控制Applet的執行,這五個方法如下:init,start,paint,stop,destory;
3.Applet有5個public的void方法(Applet的生命週期):
# 啟動Applet,瀏覽器總是呼叫Applet類別的預設建構器產生物件,然後呼叫init()方法經行初始化.一般在這個方法中產生Applet運作所需的物件並初始化Applet類別的所有資料成員.
start()
瀏覽器呼叫.啟動或重新啟動Applet.當Applet第一此啟動時,start方法將緊接在init()方法後被瀏覽器呼叫.如果使用者離開目前的HTML頁面後,start方法,在重新回到目前HTML頁面時,start()方法也會呼叫.start()方法一般用來啟動applet需要的人和附加線程
paint(Graphics g)
在init(Graphics g)
在init()方法執行結束,start()方法啟動之後,就調用此方法畫圖.另外,每次需要重新繪製Applet時,也將調用此方法.本方法的典型應用,包括是使用Applet容器傳遞給paint()方法Graphics對象g畫圖.
stop()
當使用者離開包含此Applet的HTML頁時,瀏覽器呼叫此方法.stop方法調用後,將立即停止所有在#start()方法中啟動的操作. # # destory()
卷
##二、Java Applet
程式設計
1.paint方法中的Graphics物件g的創建由Applet容器(appletviewer或Web瀏覽器)負責. # # 在paint(Graphics g)方法中,第一句常寫上super.paint(g),用來呼叫父類Applet的paint方法.一般情況下沒有該語句也可以運行,但在一個擁有眾多繪圖
元件和GUI元件的複雜Applet中,忽略該語句可能導致嚴重的錯誤.所以,在編寫Applet程式的時候,一定在paint方法的的一行設定這條語句,這是一個很好的編程習慣.
import java.awt.Graphics; import javax.swing.JApplet; public class DrawMultiStringApplet2 extends JApplet{ // 在applet上绘制文本 public void paint(Graphics g){ super.paint(g); g.drawString("Java TM Applet", 25, 25); } }
3.Java座標系的原點在左上角,以像素為單位.像素是電腦螢幕上最小的顯示單位.
## 4.在Java中繪製文字文字的時候, ## 4.在Java中繪製文字的時候,加入" "換行符是不能換行的,有時會顯示出一個黑框表示未知字符,或者乾脆顯示不出來.
5.Image類別是一個
抽象類別,所以?Applet不能直接創建Image類別的物件,Applet必須呼叫一個方法,讓Applet容器載入並傳回程式要使用的Inmage類別的物件.JApplet的超類別Applet提供了一個名為getImage的方法,該方法將Image載入到Applet 中,方法接收兩個參數---圖像檔案的位置和檔案名稱.例如;logoJPG = getImage(getDocumentBase(), "logo.jpg");
6.repaint()方法被呼叫的時候,需要清除整個背景,然後才調用paint方法顯示畫.這樣在清除背景河繪製圖像的短暫時間間隔內被用戶看見的就是閃爍.下面的兩種方法可以明顯地消除或者減弱閃爍:
重載update()方法 當AWT接受,update方法清除Applet的請求的時,呼叫Applet的
update方法.預設,update方法清除Applepaint方法.重載update方法,就可以將以前在paint方法中繪圖代碼包含在Applet方法中,從而避免每次重新繪製試將整個區域清除. 雙緩衝技術
動畫
Applet中被採用.主要原理是創建一幅後台圖像,將每一幀畫入圖像,然後調用drawImage方法,將整個後台圖像一次畫到屏幕上去.這種方法的優點在於大部分繪製是在背景進行的.將後台繪製的圖像一次繪製到屏幕上.在創建後台圖像前,首先通過調用createImage方法生成合適的後台緩衝區,然後獲得在緩衝區的繪圖環境(即Graphics類對象). 總結: 綜上所述,改善畫圖的思路是:不直接在paint方法中調用各種繪製方法,而是採用重載update方法及雙緩衝技術,生成一個圖像的緩衝區,獲得該緩衝區中的繪圖環境後,將該繪圖環境讀入內存.paint方法不再負責圖像的繪製工作,即paint方法不再裝入任何的圖像繪製代碼.我們在paint方法中,直接調用update方法,在記憶體緩衝區的繪圖環境下進行影像的繪製工作,當所有的影像繪製工作完成後,最後將緩衝區的內容一次性地寫入Applet 並在Applet視窗直接顯示出來.這種方法很巧妙地解決了圖像丟失河閃爍的問題.
三、Java Applet的深入學習
學習Java Applet資料實在太容易獲得了,在你
安裝
了JDK後,在JDK裡面有個demo目錄,裡面有Applet精品原始碼,個個堪稱經典,運行這些Applet程式碼,你會發現Applet的功能是如此的強大,實現三位的圖形,豐富多彩的動畫,時鐘等等。 四、Applet的應用領域
現在,隨著Flash的火力流行,Applet已經淡出了實現多彩網頁動畫舞台。現在Applet一般應用於複雜動態的Web應圖形領域、
人機互動
等等。例如可以用Applet實現股票代碼的動態曲線繪製,展示在頁面中,還可以用Applet做一些基於瀏覽器的複雜實時web監控系統系統,比如要透過internate或者intranet實現對工廠機器運轉參數的檢測等等,這些都是其他web技術難以實現的。
【相關推薦】
1.
Java免費影片教學教你用applet創建一個系統從而讓瀏覽器可以存取web服務
以上是深入學習java applet的詳細內容。更多資訊請關注PHP中文網其他相關文章!