1. 程式人生 > >java系統學習(十八) --------Applet設計

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”即可。