java系統學習(十八) --------Applet設計
Applet程式設計是java程式語言中至關重要的獨特功能。它不同於一般的Java程式,其能夠嵌入到HTML網頁中,並由支援Java的Web瀏覽器解釋執行。只有IE瀏覽器3 .0以上的版本,才支援Java Applet程式。通過這種小應用程式。所設計的網頁就能有一定的互動功能。早期的java程式設計applet應用很多,隨著web方面的發展,applet應用已經在減少,逐漸被activeX, flash, js等取代,這裡我們還是大概瞭解一下。
Applet的基本概念及生命週期
Applet是在Web瀏覽器中執行的Java小應用程式.它能夠嵌入到HTML頁面中,並可以通過Web瀏覽器下載和執行。一個java程式要想執行,必須編寫主執行函式,即只要把所有要執行的內容放到主執行函式中,就可以執行。但是在Applet小程式中,並不需要主執行函式,它由Web瀏覽器中的Java虛擬機器呼叫執行。
Applet類位於java.applet包中,由於其繼承自Panel類,所以也是一個容器,可以包含AWT元件。為了能夠對Applet有一個很好的理解,先看個很簡單的例項,學習如何編寫Applet應用程式。
import java.applet.*
public class testl extends Applet //繼承Applet類
{
}
然後在同一個目錄中,建立一個以HTML為副檔名的檔案。<html>
<body>
<Applet code="testl.class" width="200" height="200">
</Applet>
</body>
</html>
最後在DOS視窗中,使用如下命令。Appletviewer 以html為副檔名的檔名
在Applet程式中,不需要主執行函式,取而代之的則是使用init(), start(), stop()和destroy()方法。下面介紹這幾個函式。
口public void init():完成Applet的初始化操作。
口public void start():啟動瀏覽器執行Applet程式。
口public void stop():暫停Applet的執行。
口public void destroy():撤銷Applet的執行。
這4個函式也就形成了Applet的生命週期。它們的執行步驟如下:
載入Applet類--建立Applet物件(呼叫構造器)--init()--Start()
Applet的多媒體處理
聲音處理
處理聲音和影象是Applet興起的原因。本節將會通過例項,學習如何針對這些多媒體的內容進行處理。其實多媒體的處理不是一件很難的事情,關鍵在於函式的呼叫。
Java可以播放的聲音檔案格式有AIFF, AU, WAV, MIDI, RMF等。Applet包中的AudioClip介面包含了與聲音相關的API,它可以實現聲音檔案的反覆播放,在需要的時候.可
以停止聲音檔案的播放。AudioClip介面中的一些常用的方法如下。
口void play():播放聲音檔案一次。
口void stop():停止播放聲音檔案。
口void loop():迴圈播放聲音檔案。
若想播放聲音檔案,只需從Applet物件中獲取AudioClip物件即可,在Applet類中有一些與AudioClip介面相配合的方法,具體如下所示。
口public void play(URL url):播放指定url處的聲音檔案。
口public void play(URL url,String name):播放指定位置url處、名稱為name的聲一音檔案。
口public final static AudioClip newAudioClip(URL url):獲取可用於播放指定位置url處聲音檔案的AudioClip物件。
口public AudioClip getAudioClip(URL url),public AudioClip getAudioClip(URL url,string name):都是獲取播放指定位置聲音檔案的AudioClip物件。
影象處理
無論是處理聲音還是處理影象,最關鍵的就是把握好函式的運用。Applet類中與影象處理有關的方法如下。
口public Image getImage(URL url):獲取url指定的影象物件。
口public Image getImage(URL url,string name):使用指定的url及name,獲取影象。
與Applet類有關的相關位置的方法如下。
口public URL getCodeBase():獲取Applet Code位置URL。
口public URL getDocumentBase():獲取Web頁位置URL。
如何用Applet控制瀏覽器
在API中有一個類:AppletContext類,利用此類,不僅可以控制瀏覽器,也可以控制同一網頁中其他的Applet。下面列舉AppIetContext類的常用方法。
口void showDocument(URL url):顯示url指定的網頁。
口public void showDocument(URL url,String target):將url指定的Web頁面顯示於目標視窗中。
口Applet getApplet(String name):獲取同一網頁中名為name的Applet。
口Enumeration getApplets():獲取同一網頁中的所有的Applet。
口void showStatus(String status):在瀏覽器的狀態列中顯示status字串。
Applet的安全
當訪問包含Applet的網頁的時候,不管願意還是不願意,網頁中的Applet都會被下載並且執行。如果程式設計師設計一個惡意的Applet,那麼使用者訪問這個網頁的時候,就會對使用者進行攻擊。
為了能解決上面這個問題,Applet已經提供了安全的保障,以防止其內含威脅使用者安全的程式碼。
Applet包含下列安全事項:
口Applet無法執行使用者計算機中的程式。
口Applet無法訪問使用者計算機中的檔案。
口Applet無法獲取使用者計算機中的大部分資訊、。
口Applet無法呼叫使用者計算機中的native method。
口Applet只能與提供本Applet的伺服器進行通訊。
例子
Java檔案
//匯入包
import java.applet.*;
import java.awt.*;
public class test2 extends Applet{ //Applet程式
AudioClip voice; //建立一個AudioClip物件voice
public void init(){ //初始化方法
//為物件voice賦值,實現播放音樂
voice=getAudioClip(getCodeBase(),"ding.wav");
}
public void start(){//執行時方法
voice.loop(); //設定音樂迴圈播放
}
public void stop()( //暫停方法
voice.stop(); //設定音樂停止播放
}
}
在同一個目錄下建立一個HTML檔案如下:
<html>
<body>
《-載入test2.class檔案-》
<Applet code="test2 .class" width="200" height="200">
</Applet>
</body>
</html>
當執行時,程式會不斷地播放ding.wav這個聲音檔案,直到轉到其他頁面,才會停止播放音樂。
常見問題
瀏覽器如何執行Applet
首先,確定Applet已經被編譯為 .class檔案,然後編寫一個*.htm檔案(副檔名也可以是.html),程式碼如下:
<html>
<body>
<Applet code="..\..\myclass\MyJavaApplet.class" height=200 width=300>
</Applet>
</body>
</html>
如果HTML檔案和class檔案在同一個目錄下,則不用寫路徑名,直接寫“My.IavaAppletclass”即可。