
- •Основы аплетов
- •Класс Applet
- •Архитектура аплета
- •Простые методы отображения аплетов
- •Требование перерисовки
- •Аплет с бегущим заголовком
- •Использование окна состояния
- •Пересылка параметров в аплеты
- •Усовершенствованный аплет заголовка
- •Методы getDocumentBase() getCodeBase()
- •Воспроизведение аудиоклипов. Интерфейс AudioClip
- •Технология Java Web Start
Аплеты
На языке Java можно создавать особые программы (называемые аплетами), которые загружаются из Сети Интернет и выполняются браузерами. Они предназначаются для того, чтобы освободить пользователей от процесса инсталлирования программного обеспечения, предоставив им доступ к программам с любого компьютера, поддерживающего язык Java, или устройства, имеющего выход в Интернет. Компания Sun развивает этот подход. Не так давно была разработана технология называется Java Web Start. В ней идея аплетов поучила свое развитие, в частности исправлены некоторые из недостатков, характерных для аплетов.
Основная идея, положенная в основу использования аплетов на Web-страницах, довольно проста: страница, описанная на языке HTML, должна сообщать браузеру, какой аплет загрузить и где его разместить. Как и следовало ожидать, дескриптор, необходимый для использования аплета, должен сообщать браузеру следующую информацию.
Откуда получить файлы с классами.
Как расположить аплет на странице (его размеры, координаты и т.д.).
Браузер загружает файлы с классами из сети (или из каталога на компьютере пользователя) и автоматически запускает аплет на выполнение, используя виртуальную машину языка Java (Java Virtual Machine). Кроме аплетов, Web-страница может содержать все остальные элементы языка HTML: разнообразные шрифты, маркированные списки, графические изображения и т.д. Аплеты — это всего лишь часть гипертекстовой страницы. Всегда стоит иметь в виду, что язык Java не является средством для разработки гипертекстовых страниц. Это инструмент, позволяющий их оживлять. Отсюда вовсе не следует, что элементы графического пользовательского интерфейса в аплете, написанном на языке Java, не важны. Однако эти элементы должны быть согласованы с соответствующим дизайном Web-страницы, созданным с помощью языка HTML.
Основы аплетов
Все аплеты являются подклассами Applet. Таким образом, они должны импортировать java.applet, а также java.awt. AWT — сокращение Abstract Window Toolkit (абстрактный оконный интерфейс). Так как все аплеты выполняются в окне, необходимо включить поддержку для этого окна. Аплеты не исполняются Java-интерпретатором времени выполнения, работающим в консольном режиме. Они выполняются Web-браузером.
Выполнение аплета не начинается с метода main(). Вывод в окно аплета не выполняется методом System.out.println().
Можно использовать, например drawstring(), который выводит строку в указанную точку экрана. Ввод также обрабатывается иначе, чем в приложении.
Как только аплет откомпилирован, он включается в HTML-файл, используя тег <applet>. Аплет будет выполняться Java-совместимым браузером, когда тот встретит в HTML-файле указанный тег. Для более удобного просмотра и проверки аплета включите в начало файла исходного кода Java-комментарий, который содержит тег <applet>. Этим способом ваш код документируется вместе с инструкциями HTML, необходимыми аплету. Например:
/*
<applet code="MyApplet" width=200 height=60>
</applet>
*/
Этот комментарий содержит тег <applet>, который выполнит аплет с именем MyApplet в окне с размерами 200x60 пикселей
Класс Applet
Класс Applet определяет методы, представленные в таблице (ниже). Этот класс обеспечивает всю необходимую поддержку для выполнения аплетов.
Методы, определенные в классе Applet
Метод |
Описание |
|
void destroy() |
Освобождает все ресурсы, занятые аплетом. Вызывается браузером непосредственно перед тем, как аплет завершается. Ваш аплет переопределит данный метод, если потребуется выполнить какую-нибудь дополнительную чистку перед его выполнением |
|
AppletContext getAppletContext() |
Возвращает контекст, связанный с апплетом |
|
String getAppletInfo() |
Возвращает строку, которая описывает аплет |
|
AudioClip getAudioClip(URL url) |
Возвращает объект AudioClip, который инкапсулирует аудиоклип, найденный по адресу, указанному в url |
|
AudioClip getAudioClip(URL url, String clipName) |
Возвращает объект AudioClip, который инкапсулирует аудиоклип, найденный по адресу, указанному в url, и имеющий имя, указанное в параметре clipName |
|
URL getCodeBase() |
Возвращает URL, связанный с вызывающим аплетом |
|
URL getDocumentBase() |
Возвращает URL HTML-документа, который вызывает аплет |
|
Image getImage(URL url) |
Возвращает объект image, который инкапсулирует изображение, найденное по адресу url |
|
Image getImage(URL url, String imageName) |
Возвращает объект image, который инкапсулирует изображение, найденное по адресу url, и имеющий имя, указанное в параметре imageName |
|
Locale getLocale() |
Возвращает объект Locale, который используется различными чувствительными к локализации классами и методами |
|
String getParameter(String paramName) |
Возвращает параметр, указанный в pararnName. Если указанный параметр не найден, возвращается null (пустой указатель) |
|
String[] [] getParameterInfo() |
Возвращает таблицу строк, описывающую параметры, распознанные аплетом. Каждый вход в таблицу должен состоять из трех строк, которые содержат имя параметра, описание его типа и/или диапазона, и объяснения его цели |
|
void init() |
Вызывается, когда аплет начинает выполнение. Это первый метод, который вызывается для любого аплета |
|
boolean isActive() |
Возвращает true, если аплет был запущен. Возвращает false, если аплет был остановлен |
|
static final AudioClip newAudioClip(URL url) |
Возвращает объект AudioClip, который инкапсулирует аудиоклип, найденный по адресу ur1. Этот метод подобен getAudioClip () за исключением того, что он статический и может быть выполнен без потребности в Applet-объекте. (Добавлен в Java 2.) |
|
void play (URL url) |
Если аудиоклип найден по адресу url, то он проигрывается |
|
void play (URL url, String clipName) |
Если аудиоклип найден по адресу url с именем clipName, то клип проигрывается |
|
void resize(Dimension dim) |
Изменяет размеры аплета согласно измерениям, указанным в dim. Dimension — это класс пакета java.awt. Он содержит два целочисленных поля: width и height |
|
void resize(int width, int height) |
Изменяет размеры аплета согласно размерам, указанным в width и height |
|
void showStatus(String str) |
Отображает значение параметра str в окне состояния браузера или программы просмотра аплета. Если браузер не поддерживает окно состояния, то никакое действие не выполняется |
|
void start() |
Вызывается браузером, когда аплет должен запустить (или возобновить) выполнение. После init() (когда аплет впервые начинает выполнение) вызывается автоматически |
|
void stop() |
Вызывается браузером, чтобы приостановить выполнение аплета. После остановки аплет перезапускается, когда браузер вызывает start() |