Назад
Вперед
2.2. Простейший аплет
На простом примере мы рассказываем о структуре
однопоточного аплета. При этом мы перечисляем
методы, переопределяемые в главном классе
аплета, унаследованном от класса Applet, и даем их
краткое описание.
Исходный текст примера
Архив проекта для Java WorkShop 2.0
Демонстрация
(ваш браузер должен уметь работать с аплетами
Java)
Немного теории
Главный класс аплета создается на базе класса
java.applet.Applet. В нем обычно переопределяются
несколько методов, отвечающих за инициализацию
аплета, перерисовку его окна, получение
информации об аплете и так далее.
Обычно минимальный набор переопределяемых
методов однопоточного аплета такой:
- init
- destroy
- paint
- getAppletInfo
Метод init получает управление один раз при
инициализации аплета. Обычно он выполняет
установку начальных значений в полях класса,
получает какие-либо ресурсы, необходимые для
работы аплета или предпринимает другие
инициализирующие действия.
Назначение метода destroy прямо противоположное
по сравнению с назначением метода init. Он
предназначен для освобождения ресурсов,
полученных приложением в методе init. Заметим, что
области оперативной памяти освобождаются
автоматически системой сборки мусора. Что же
касается таких ресурсов, как, например, канал
связи с расширением сервера Web или поток ввода/вывода,
связанный с файлом, то его необходимо закрывать
явным образом.
Метод paint выполняет всю работу по рисованию в
окне аплета. Как правило, только этот метод и
занимается рисованием. Исключение составляют
многопоточные аплеты, предназначенные для
отображения анимации.
Что касается метода getAppletInfo, то его
переопределять необязательно. Однако при помощи
данного метода другие аплеты могут получить
информацию о вашем аплете.
Многопоточные аплеты переопределяют еще два
метода:
Первый из них получает управление, когда
документ HTML с аплетом появляется в окне браузера,
а второй - когда изчезает. Метод start обычно
запускает дополнительные потоки на выполнение
при активизации аплета. Метод stop останавливает
потоки, когда документ с аплетом исчезает из окна
браузера.
Описание примера
Наш простейший аплет рисует в своем окне
текстовую строку. При этом мы устанавливаем цвет
фона окна аплета, выбираем шрифт для изображения
текстовой строки, задаем цвет текста и размер
символов (рис. 1).
Рис. 1. Окно простейшего аплета
Рассмотрим исходный текст аплета.
Так как главный класс аплета наследуется от
класса java.applet.Applet, мы включаем этот класс
оператором import:
import java.applet.Applet;
import java.awt.*;
Дополнительно нам потребуется класс AWT (Abstract
Window Toolkit), так как с помощью его методов мы будем
рисовать в окне аплета.
Определение главного класса выглядит
следующим образом:
public class SimpleApplet extends Applet
{
String szAppName;
public void init()
{
. . .
}
public String getAppletInfo()
{
. . .
}
public void paint(Graphics g)
{
. . .
}
}
Мы унаследовали класс SimpleApplet от класса Applet,
воспользовавшись для этого ключевым словом extends.
В классе SimpleApplet определено поле szAppName класса
String и переопределены следующие методы: init,
getAppletInfo и paint. Так как метод init не заказывает
никаких ресурсов, нам не потребовалось
переопределять метод destroy.
Метод init получает управление при инициализации
аплета. Он записывает название приложения в поле
szAppName, а затем устанавливает цвет фона и цвет
текста:
szAppName = new String("SimpleApplet");
setBackground(Color.yellow);
setForeground(Color.black);
Метод getAppletInfo возвращает текстовую строку
класса String, комбинируя ее из строки "Name:" и
названия приложения, записанного методом init в
поле szAppName:
public String getAppletInfo()
{
return "Name:" + szAppName;
}
Что же касается метода paint, то в нем мы вначале
устанавливаем красный цвет текста:
g.setColor(Color.red);
Установка выполняется методом setColor, который
вызывается для объекта g класса Graphics. Этот объект
является контекстом отображения окна аплета и
передается методу paint через его единственный
параметр.
Далее метод paint устанавливает в контексте
отображения новый шрифт типа Helvetica. Размер
символов устанавливается равным 24 пикселам. В
добавок мы выделяем текст, делая его жирным:
g.setFont(new Font(
"Helvetica", Font.BOLD, 24));
Установив в контексте отображения все
необходимые атрибуты, метод paint отображает
строку, вызывая метод drawString:
g.drawString("Applet " + szAppName, 10, 30);
Рисование строки начинается в точке, имеющей
координаты (10, 30).
Назад Вперед |