|
ует
выполнить перед удалением аплета. Например, если в методе init вы создавали
какие-либо задачи, в методе destroy вы можете их завершить.
Метод start
Метод start вызывается после метода init в момент, когда пользователь
начинает просматривать документ HTML с встроенным в него аплетом. Система Java
Applet Wizard создает заглушку, переопределяющую метод start из базового
класса:
public void start()
{
// Сделать: Добавьте сюда дополнительный код,
// который должен работать при запуске аплета
}
Вы можете модифицировать текст этого метода, если при каждом посещении
пользователем страницы с аплетом необходимо выполнять какую-либо инициализацию.
Метод stop
Дополнением к методу start служит метод stop. Он вызывается, когда
пользователь покидает страницу с аплетом и загружает в окно навигатора другую
страницу. Заметим, что метод stop вызывается перед методом destroy.
По умолчанию система Java Applet Wizard переопределяет метод stop базового
класса Applet следующим образом:
public void stop()
{
// Сделать: Добавьте сюда дополнительный код,
// который должен работать при остановке аплета
}
Метод paint
Наиболее интересен для нас метод paint, который выполняет рисование в окне
аплета. Вот его исходный текст, созданный системой Java Applet Wizard:
public void paint(Graphics g)
{
g.drawString(
"Created with Microsoft Visual J++ Version 1.0",
10, 20);
}
Если посмотреть определение класса Applet, то в нем нет метода paint. В
каком же классе определен этот метод?
Взглянем на определение класса Applet:
public class java.applet.Applet
extends java.awt.Panel
{
. . .
}
Во-первых, вы видите, что полное имя класса Applet есть java.applet.Applet.
Включая оператором import библиотеку классов java.applet.*, мы включали и
определение класса Applet.
Во-вторых, из определения класса можно заключить, что класс java.applet.
Applet произошел от класса java.awt.Panel. Напомним, что определение классов
java.awt.* также было включено в исходный текст нашего аплета оператором import.
Если класс java.applet.Applet был создан на базе класса java.awt.Panel, то
нет ли в базовом классе определения метода paint?
Изучив исходный текст класса java.awt.Panel, убеждаемся, что такого метода
там нет, однако сам класс java.awt.Panel произошел от класса java.awt.
Container:
public class java.awt.Panel
extends java.awt.Container
{
. . .
}
Продолжим наши исследования. В классе java.awt.Container снова нет метода
paint, но сам этот класс создан на базе класса java.awt.Component:
public abstract class java.awt.Container
extends java.awt.Component
{
. . .
}
Но и здесь метода paint нет. Этот метод определен в классе java.awt.
Component, который, в свою очередь, произошел от класса java.lang.Object и
реализует интерфейс java.awt.image.ImageObserver:
public abstract class java.awt.Component
extends java.lang.Object
implements java.awt.image.ImageObserver
{
. . .
}
Мы проследили иерархию классов от класса java.applet.Applet, на базе
которого создан наш аплет, до класса java.lang.Object, который является базовым
для всех классов в Java.
Схематически эту иерархию можно изобразить так:
java.lang.Object (корневой класс)
-> java.awt.Component
-> java.awt.Container
-> java.awt.Panel
-> java.applet.Applet
Метод paint определен в классе java.awt.Component, но так как этот класс
является базовым для класса Applet и для нашего класса HelloAp, мы можем
переопределить метод paint.
Теперь о том, когда вызывается метод paint.
|
|