Вмъкване на Java аплети

Вмъкването на скриптове в Web страницата, подобрява значително нейния външен вид. Въпреки това, оказва се, че скриптовете не винаги могат да свършат това което искаме. Например скриптовете не предлагат обекти, с помощта на които да се визуализират потребителски диалогови прозорци.

Когато възникне такава ситуация, в която се изисква да се пише не скрипт, а на език от високо ниво, в Web страницата се използват така наречените аплети. Това са програми, които се зареждат от браузъра, като той трябва вътре в себе си да има възможност да ги изпълнява. Естествено правата на тези програми са силно ограничени, поради съображения за сигурност. Може да се пишат на Java, като се използва специален обект наречен Applet. Той обикновенно се намира в пакета java.applet. Всеки аплет написан на Java наследява класа Applet.

Класа Applet има няколко по-важни метода. Те са:

init()
Извиква се при зареждането на аплета за начално инициализиране.

start()
Извиква се всеки път, когато се наложи стартирането на аплета. (поради отворено ново приложение върху Web страницата например)

paint()
Извиква се като част от метода update(), когато аплета реши, че трябва да се обнови.

stop()
Извиква се, когато например се отвори нов прозорец върху аплета и неговата работа спира за да не се хабят ресурси.

destroy()
Извиква се при унищожаването на аплета.

С помощта на горните методи могат да се пишат разнообразни по изглед и функционалност аплети. Ако има инициализиране на променливи, то се извършва в init(). Ако нещо трябва да се обновява често, може да се направи или в start() или в paint(). Ако се рисува нещо специфично - то се прави в paint(). Значението на stop() и destroy() - е ясно от наименованието им.

Пример:

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

public class Test extends Applet {
String s;
int inits=0;
int starts=0;
int stops=0;
public void init() {inits++;}
public void start() {starts++;}
public void stop() {stops++;}
public void paint(Graphics g) {
s="inits: "+inits+
", starts: "+starts+
", stops: "+ stops;
g.drawString(s,10,10);
}
}

назаднапред