Applet是一個可以嵌入到網(wǎng)頁中的Java程序。它在Web瀏覽器中運行,并在客戶端工作。Applet使用APPLET或OBJECT標記嵌入在HTML頁面中,并托管在Web服務器上。
小程序用于使網(wǎng)站更具動態(tài)性和娛樂性。
一些要點:
所有applet都是java.applet.Applet類的子類(直接或間接)。
小程序不是獨立的程序。相反,它們可以在Web瀏覽器或applet查看器中運行。JDK提供了一個名為applet viewer的標準applet查看器工具。
通常,applet的執(zhí)行不是從main()方法開始的。
System.out.println()不執(zhí)行applet窗口的輸出。而是使用各種AWT方法處理它,例如drawString()。
applet的生命周期:
重要的是要理解上面圖像中顯示的各種方法的調(diào)用順序。當applet開始時,將按以下順序調(diào)用以下方法:
1.的init()
2.開始()
3.涂料()
當applet終止時,會發(fā)生以下方法調(diào)用序列:
1。stop()
2。destroy()
讓我們更仔細地看一下這些方法。
的init():該的init()方法被調(diào)用的第一個方法。這是您應該初始化變量的地方。在applet運行期間只調(diào)用一次此方法。
開始():該起動()方法被調(diào)用后的init() 。它也被稱為在applet停止后重新啟動它。請注意,init()被調(diào)用一次,即第一次加載applet時,每次applet的HTML文檔顯示在屏幕上時都會調(diào)用start()。因此,如果用戶離開網(wǎng)頁并返回,則applet將在start()處繼續(xù)執(zhí)行。
漆():該涂料()方法在每次基于AWT的applet的輸出必須被重畫時調(diào)用。出現(xiàn)這種情況有幾個原因。例如,運行applet的窗口可能被另一個窗口覆蓋,然后被覆蓋;蛘呖梢孕』痑pplet窗口然后恢復。
當applet開始執(zhí)行時也會調(diào)用paint()。無論原因是什么,每當applet必須重繪其輸出時,都會調(diào)用paint()。
的涂料()方法有類型的一個參數(shù)的圖形。此參數(shù)將包含圖形上下文,該上下文描述運行applet的圖形環(huán)境。只要需要輸出到applet,就會使用此上下文。
停止():將停止()時,Web瀏覽器離開包含在HTML文檔的方法被稱為小程序,當它到另一個網(wǎng)頁,例如。當停止()被調(diào)用時,小程序可能運行。您應該使用stop()來掛起當applet不可見時不需要運行的線程。如果用戶返回頁面,則可以在調(diào)用start()時重新啟動它們。
destroy()方法:將銷毀()當環(huán)境決定了你的小程序需要從內(nèi)存中完全去除方法被調(diào)用。此時,您應該釋放applet可能正在使用的任何資源。將停止()方法總是調(diào)用之前destroy()方法。
創(chuàng)建Hello World小程序:
讓我們從HelloWorld applet開始:
filter_none
編輯
play_arrow
brightness_4
// A Hello World Applet
// Save file as HelloWorld.java
import java.applet.Applet;
import java.awt.Graphics;
// HelloWorld class extends Applet
public class HelloWorld extends Applet
{
// Overriding paint() method
@Override
public void paint(Graphics g)
{
g.drawString("Hello World", 20, 20);
}
}
說明:
上面的java程序以兩個import語句開頭。第一個import語句從applet包導入Applet類。您創(chuàng)建的每個基于AWT的(抽象窗口工具包)小程序必須是Applet類的子類(直接或間接)。第二個語句從awt包導入Graphics類。
程序的下一行聲明了HelloWorld類。必須將此類聲明為public,因為它將由程序外部的代碼訪問。在HelloWorld中,聲明了paint()。此方法由AWT定義,必須由applet覆蓋。
內(nèi)部paint()是對drawString()的調(diào)用,它是Graphics類的成員。此方法輸出從指定的X,Y位置開始的字符串。它具有以下一般形式:
void drawString(String message,int x,int y)
這里,message是從x,y開始輸出的字符串。在Java窗口中,左上角是位置0,0。在applet中調(diào)用drawString()會導致從位置20,20開始顯示消息“Hello World”。
請注意,applet沒有main()方法。與Java程序不同,applet不會在main()處開始執(zhí)行。實際上,大多數(shù)applet甚至沒有main()方法。相反,applet在其類的名稱傳遞給applet查看器或網(wǎng)絡瀏覽器時開始執(zhí)行。
運行HelloWorld Applet:
輸入HelloWorld.java的源代碼后,編譯方式與編譯java程序的方式相同(使用javac命令)。但是,使用java命令運行HelloWorld 會生成錯誤,因為它不是應用程序。
java HelloWorld
錯誤:在HelloWorld類中找不到主方法,請將main方法定義為:
public static void main(String [] args)
您可以通過兩種標準方式運行applet:
在兼容Java的Web瀏覽器中執(zhí)行applet。
使用applet查看器,例如標準工具appletviewer。applet查看器在窗口中執(zhí)行applet。這通常是測試applet的快速,簡單的方法。
接下來描述這些方法中的每一種。
使用支持java的Web瀏覽器:要在Web瀏覽器中執(zhí)行applet,我們必須編寫一個包含加載applet的標記的簡短HTML文本文件。為此,我們可以使用APPLET或OBJECT標記。使用APPLET,這是執(zhí)行HelloWorld的HTML文件:
<applet code =“HelloWorld”width = 200 height = 60>
</ APPLET>
width和height語句指定applet使用的顯示區(qū)域的尺寸。APPLET標記包含其他幾個選項。創(chuàng)建此html文件后,您可以使用它來執(zhí)行applet。
注意: Chrome和Firefox不再支持NPAPI(Java applet所需的技術)。請參考這里
使用appletviewer:這是運行applet的簡單方法。要使用applet查看器執(zhí)行HelloWorld,您還可以執(zhí)行前面顯示的HTML文件。例如,如果使用
RunHelloWorld.html 保存前面的HTML文件,則以下命令行將運行HelloWorld:
appletviewer RunHelloWorld.html
HelloWorld Applet
帶有java源文件的appletviewer:如果在包含APPLET標記的Java源代碼文件的頭部包含注釋,那么使用必要的HTML語句原型記錄代碼,并且只需啟動編譯的applet就可以運行帶有Java源代碼文件的applet查看器。如果使用此方法,HelloWorld源文件如下所示:
filter_none
編輯
play_arrow
brightness_4
// A Hello World Applet
// Save file as HelloWorld.java
import java.applet.Applet;
import java.awt.Graphics;
/*
<applet code="HelloWorld" width=200 height=60>
</applet>
*/
// HelloWorld class extends Applet
public class HelloWorld extends Applet
{
// Overriding paint() method
@Override
public void paint(Graphics g)
{
g.drawString("Hello World", 20, 20);
}
}
使用這種方法,首先編譯HelloWorld.java文件然后只需運行以下命令來運行applet:
appletviewer HelloWorld
Applet over HTML的功能
顯示W(wǎng)eb應用程序的動態(tài)Web頁面。
播放聲音文件。
顯示文件
播放動畫
這個副標題由Surya Priy提供。
對Java小程序施加的限制
由于安全原因,Java小程序受到以下限制:
1. applet無法加載庫或定義本機方法。
2.小程序通常不能在執(zhí)行主機上讀取或?qū)懭胛募?/p>
3.小程序無法讀取某些系統(tǒng)屬性。
4.小程序除了來自它的主機之外不能建立網(wǎng)絡連接。
5. applet無法啟動正在執(zhí)行它的主機上的任何程序。
本文由Krishna Bhatia和Pavan Gopal Rayapati撰寫。如果你喜歡GeeksforGeeks并愿意貢獻,你也可以用寫一篇文章contribute.geeksforgeeks.org或郵寄你的文章contribute@geeksforgeeks.org。查看出現(xiàn)在GeeksforGeeks主頁上的文章,并幫助其他Geeks。
如果您發(fā)現(xiàn)任何不正確的內(nèi)容,或者您想要分享有關上述主題的更多信息,請撰寫評論。