小應用程式

小應用程式

小應用程式是可通過網際網路下載並在接收計算機上運行的一小段程式。小應用程式通常用Java語言編寫並運行在瀏覽器軟體中,applet典型用於為全球資訊網網頁頁面定製或添加互動格式元素。

中科永聯高級技術培訓中心(www.itisedu.com)

小應用程式(Applet)是可通過網際網路下載並在接收計算機上運行的一小段程式。小應用程式通常用Java語言編寫並運行在瀏覽器軟體中,applet典型用於為全球資訊網網頁頁面定製或添加互動格式元素。

Applet可以翻譯為小應用程式,Java Applet就是用Java語言編寫的這樣的一些小應用程式,它們可以直接嵌入到網頁或者其他特定的容器中,並能夠產生特殊的效果。

小應用程式(Applet)必須運行於某個特定的“容器”,這個容器可以是瀏覽器本身,也可以是通過各種外掛程式,或者包括支持Applet的移動設備在內的其他各種程式來運行。與一般的Java應用程式不同,Applet不是通過main方法來運行的。在運行時Applet通常會與用戶進行互動,顯示動態的畫面,並且還會遵循嚴格的安全檢查,阻止潛在的不安全因素(例如根據安全策略,限制Applet對客戶端檔案系統的訪問)。

在Java Applet中,可以實現圖形繪製,字型和顏色控制,動畫和聲音的插入,人機互動及網路交流等功能。 Applet還提供了名為抽象視窗工具箱(Abstract Window Toolkit, AWT)的視窗環境開發工具。 AWT利用用戶計算機的GUI元素,可以建立標準的圖形用戶界面,如視窗、按鈕、滾動條等等。目前,在網路上有非常多的Applet範例來生動地展現這些功能,讀者可以去調閱相應的網頁以觀看它們的效果。

一、小應用程式(Applet)的語言特點

從Applet擴展而創建的用戶Applet新類。
 類定義舉例:public class hello2 extends Applet
Applet依賴於瀏覽器的調用。
 通過〈Applet〉標記嵌入在HTML檔案中。

二、HTML中Applet標記的主要屬性

Code=Applet檔案標識。
Codebase=Applet檔案所在路徑。
width=Applet顯示區域的寬度。
height=Applet顯示區域的高度。
name=Applet的符號名,用於同頁面不同Applet之間的通信。

三、小應用程式(Applet)的生命周期

小應用程式

init()、start()、stop()、destroy()方法都是Applet類中已經定義的方法,
系統根據上述規則自動執行Applet的生命周期。
用戶Applet中也可重新定義這些方法(重載)。
  例3.1 了解Applet的生命周期。
首先執行init()方法,構造了Car類的實例Car1,並計算了price1和mycar1。
然後執行start()方法,計算了price2。
然後執行paint()方法,在頁面上顯示Price1和price2的信息。

四、小應用程式(Applet)的工作原理

含有Applet的網頁的HTML檔案代碼中部帶有 和這樣一對標記,當支持Java的網路瀏覽器遇到這對標記時,就將下載相應的小應用程式代碼並在本地計算機上執行該Applet。

例2.1帶有一個Applet的主頁

(html>
Welcome to my homepage!
This is an example homepage, you can see an applet in it。

上面這個例子就是一個簡單主頁的HTML檔案代碼。代碼第五行中的

,是為了確保Applet出現在新的一行,也就是說,<P>的作用象一個回車符號,若沒有它, Applet將會緊接著上一行的最後一個單詞出現。代碼第六、七兩行是關於Applet的一些參數。其中第六行是必需的Applet參數,定義了編譯後的包含Applet位元組碼的檔案名稱,後綴通常為“.class”;和以象素為單位的Applet的初始寬度與高度。第七行則是附加的Applet參數,它由一個分離的<param>標記來指定其後的名稱和值,在這裡是img的值為“example.gif’,它代表了一個圖形檔案名稱。

Applet的下載與圖形檔案一樣需要一定的時間,若干秒後它才能在螢幕上顯示出來。等待的時間則取決於Applet的大小和用戶的網路連線的速度。一旦下載以後,它便和本地計算機上的程式以相同的速度運行了。

Applet在用戶的計算機上執行時,還可以下載其它的資源,如聲音檔案、圖像檔案或更多的Java代碼,有些Applet還允許用戶進行互動式操作。但這需要重複的連結與下載,因此速度很慢,這是一個亟待解決的問題,可以想到的一個好辦法是採用類似高速快取的技術,將每次下載的檔案都臨時保存在用戶的硬碟上,雖然第一次使用時花的時間比較多,但當再次使用時,只需直接從硬碟上讀取檔案而無需再與Internet連線,便可以大大提高性能了。

五、從哪裡得到Applet

自從Java日益流行之後,世界各地的愛好者們便不斷創造出各種各樣的Applet。這裡列出了幾個較大的Applet收集站,讀者可以去逛一逛,看看這些Applet的效果如何,相信會使人流連忘返的。

http://www.gamelan.com
這是Intemet上最負盛名的Applet收集站,它按照小應用程式的用途加以分類,並列出了它們的說明、功能和程式代碼,其規模和種類之多,令人嘆為觀止。

http://www.jars.com/
這個站點的特色是對它收集的小應用程式都加以評分,JARS是小應用程式評價服務(Java Applet Rating Services)的簡稱。許多Java開發者均以能獲得其好評為榮。

http://www.yahoo.com/Computers_and_Internet/Languages/Applet/
這個URL可真夠長的!這是Yahoo公司提供的小應用程式目錄,收集的數量雖然稍遜於Gamelan,但也很可觀了。】

http://home.netscape.com/comprod/products/navigator/version_2.0 /java_applets/
這是網景公司提供的小應用程式演示網頁,同時也提供一些Java信息。

http://java.wiwi.uni_frankfurt.de/
這是一個小應用程式的信息站點,提供了許多實用信息,讀者可以藉助這裡的資料庫,查詢自己感興趣的小應用程式的相關信息。 

六、Applet事件回響

Java的AWT庫允許你把用戶界面建立在Java applet中。AWT庫包含有所有的用於建立簡單界面所需要的控制:按鈕、編輯框、檢查框等等。

import java.awt.*;
import java.applet.*;

public class AppletEvent extends Applet
{
int x, y ;
Button b ;
Color clr ;

在該applet構造函式中,代碼初始化了變數x,y,clr,建立了一個新的顯示“你就按著玩兒吧!”按鈕控制,然後把按鈕添加到窗體中。

public AppletEvent()
{
y = 40 ;
x = 100 ;
clr = Color.red ;

b = new Button("你就按著玩兒吧!");
add("Center", b);
}

視窗還包含有用paint方法繪製的字元。

public void paint(Graphics g)
{
g.setColor(Color.red);
g.setFont(new Font("Helvetica", Font.PLAIN, 24));
g.drawString("InofCD歡迎您!", x, y);
}

在applet類中添加事件處理函式。也可以從按鈕的基類繼承一新的按鈕類,然後在那裡處理事件。在該applet中的“action”方法選擇applet的事件流。當每個事件流到達時,它檢驗其是否來自Button對象。如果是,它會增加y和減少x並使該applet重繪自己。ev.arg屬性傳遞了來自被單擊按鈕的標籤,並把它與所按的按鈕的標籤進行比較。

public boolean action(Event ev, Object arg)
{
if (ev.target instanceof Button)
{
y+= 10 ;
x = x- 10 ;

if (y>=250) y= 10 ;
if (x<=0) x= 100 ;

repaint();
return true;
}
return false;
}
}
 

相關詞條

相關搜尋

熱門詞條

聯絡我們