APPLET

出自 华夏文化百科
前往: 導覽、 搜尋

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;}}