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