Учебное пособие: Аплеты
В аплетах редко встречается конструктор. Дело в том, что при запуске первого создается его контекст. Во время выполнения конструктора контекст еще не сформирован, поэтому не все начальные значения удается определить в конструкторе.
Начальные действия, обычно выполняемые в конструкторе и методе main(), в аплете записываются в метод init() класса Applet. Этот метод автоматически запускается исполняющей системой Java браузера сразу же после загрузки аплета. Вот как он выглядит:
public void init(){}
Метод init () не имеет аргументов, не возвращает значения и должен переопределяться в каждом аплете — подклассе класса Applet. Обратные действия — завершение работы, освобождение ресурсов — записываются при необходимости в метод destroy(), тоже выполняющийся автоматически при выгрузке аплета. В классе Applet есть пустая реализация этого метода.
Кроме методов init() и destroy() в классе Applet присутствуют еще два пустых метода, выполняющихся автоматически. Браузер должен обращаться к методу start() при каждом появлении аплета на экране и обращаться к методу stop(),когда аплет уходит с экрана. В методе stop() можно определить действия, приостанавливающие работу аплета, в методе start() — возобновляющие ее. Надо сразу же заметить, что не все браузеры обращаются к этим методам как должно. Работу указанных методов можно пояснить простым житейским примером.
Приехав весной на дачный участок, вы прокладываете водопроводные трубы, прикручиваете краны, протягиваете шланги — выполняете метод init() для своей оросительной системы. После этого, приходя на участок, включаете краны — запускаете метод start(), а уходя, выключаете их — выполняете метод stop(). Наконец, осенью вы разбираете оросительную систему, отвинчиваете краны, просушиваете и укладываете водопроводные трубы — выполняете метод destroy().
Все эти методы в аплете необязательны. В примере 1 записан простейший аплет, выполняющий программу HelloWorld.
Пример 1. аплет HelloWorld
import java.awt.*;
import java.applet.*;
public class HelloWorld extends Applet{
public void paint(Graphics g){
g.drawstring("Hello, XXI century World!", 10, 30);
}
}
Эта программа записывается в файл HelloWorld.java и компилируется как обычное приложение:
Компилятор создает файл HelloWorld.class, но воспользоваться для его выполнения интерпретатором java теперь нельзя — нет метода main(). Вместо интерпретации надо дать указание браузеру для запуска аплета.
Указание браузеру на запуск аплета дается в теге <applet>. В нем обязательно задаются:
имя файла с классом аплета параметром code;
ширина width и высота height панели аплета в пикселах. Полностью текст HTML для нашего аплета приведен в примере 2.
Пример 2. Файл HTML для загрузки аплета HelloWorld
<html>
<head><title> Applet</title></head> <body>
Нижевыполняется аплет.<br>
<applet code = "HelloWorld.class" width = "200" height = "100">
</applet>
</body>
</html>
Этот текст заносится в файл с расширением html или htm, например, HelloWorld.html. Имя файла произвольно, никак не связано с аплетом или классом аплета.