Дескриптор <applet> в его наиболее базовой форме выглядит приблизительно следующим образом:
<applet code=»HelloWorldApplet.class» width=100 height=100>
Как уже было сказано ранее, атрибут code задает имя класса; значение этого атрибута представляет собой имя файла, оканчивающееся расширением .class. Атрибуты width и height определяет размеры окна, в котором будет размещен апплет. Значения обоих параметров задаются в пикселях. Нужно также указать закрывающий дескриптор </applet>. Текст, размещенный между дескрипторами <applet> и </applet>, выводится на экран в том случае, если браузер не может отобразить апплет. Атрибуты code, width и height необходимы. Если хотя бы один из них будет пропущен, браузер не сможет загрузить апплет.Вся эта информация обычно встраивается в HTML-страницу и в самом минимальном виде может выглядеть так:
<head><title>HelloWorldApplet</title>
</head>
<body>
<p>Следующая строка текста выводится под управлением системы Java:</p>
<applet code=»HelloWorldApplet.class» width=»100″ height=»100″>
Если ваш браузер поддерживает Java, на этом месте будет окна апплета.
</applet>
</body>
</html>
С дескриптором applet вы можете использовать описанные ниже атрибуты.
- width, height — эти атрибуты необходимы. Они задают ширину и высоту окна апплета в пикселях. В программе appletviewer эти параметры определяют первоначальный размер апплета. Программист может изменять размер любого окна, созданного программой appletviewer. В браузере изменить размеры апплета невозможно. Поэтому, включая апплет в состав документа, надо заранее продумать, сколько места понадобится апплету.
- align — этот атрибут задает вид выравнивания апплета. Значения атрибута те же, что и у атрибута align HTML-дескриптора img.
- vspace, hspace — эти необязательные атрибуты указывают количество пикселей над и под апплетом(vspace), а также по обеим его сторонам(hspace).
- code — данный атрибут задает имя файла, содержащего класс апплета. Имя берется относительно пути, заданного посредством атрибута codebase или относительно текущий страницы, если codebase не указан. Например, если класс апплета находится в пакете com.mycompany, то задается атрибут code=»com/mycompany/MyApplet.class» или code=»mycompany.MyApplet.class». Атрибут codebase позволяет ссылаться на файл, расположенный в любой позиции файловой системы. Атрибут code задает только имя файла, содержащего класс апплета. Разумеется, апплет может содержать и другие файлы классов. Загружается класс, содержащий апплет, браузер распознает, какие файлы нужны еще, и загружает их дополнительно.
- codebase — этот необязательный атрибут информирует браузер о том, что файлы классов находятся в каталоге, указанном в качестве значения этого атрибута. По желанию вы можете указывать даже абсолютный URL каталога на другом сервере. Однако гораздо чаще задается относительный URL. Предположим, что структура каталогов выглядит так, как показано ниже:
aDirectory/
MyPage.html
myApplets/
CalculatorApplet.class
В этом случае в документе MyPage.html может присутствовать следующий дескриптор:
<applet code=»CalculatorApplet.class» codebase=»MyApplets» width=100 height=170> - archive — этот необязательный атрибут перечисляет архивные файлы Java или файлы, содержащие классы и другие ресурсы для апплета. Такие файлы загружаются с сервера перед загрузкой апплета. Подобная технология значительно ускоряет работу, поскольку для загрузки JAR-файла, содержащего много мелких файлов, необходим лишь один HTML-запрос. В списке JAR-файлы разделяются запятыми.
<applet code=»CalculatorApplet.class» archive=»CalculatorClasses.jar,corejava/CoreJavaCLasses,jar» width=100 height =170> - object — этот дескриптор позволяет задать имя файла, содержащего сериализованный объект апплет. (Объект называется сериализованным, если все его поля данных записаны в отдельном файле.) Перед отображением апплета обьект десериализуется. Если в дескрипторе присутствует жтот атрибут, метод int() не вызывается; выполнение апплета начинается с метода start(). Перед сериализацией обьекта апплета необходимо вызвать его метод stop. Благодаря сериализации создается возможность реализовывать браузеры с сохранением состояния, в которых после повторной загрузки восстанавливается то состояние апплета, которое было в момент завершения предыдущего сеанса работы. К сожалению, эта возможность практически не используется разработчиками Web-страниц. В каждом дескрипторе <applet> должен содержаться атрибут code либо object.
<applet object=»CalculatorApplet.ser» width=100 height=180> - name — с помощью этого атрибута апплету присваивается имя, которая затем можно использовать в сценарии. Браузеры Netscape и Internet Explorer позволяют вызывать методы апплета, размещенного на странице, средствами JavaScript. Для того чтобы получить доступ к апплету из сценария на языке JavaScript, сначала нужно дать ему имя:
<applet code=»CalculatorApplet.class» width=100 height=200 name=»mine»></applet>
Теперь этот обьект доступен с помощью ссылки document.applets.имя_апплета:
var myApplet = document.applets.mine;
Используя интеграцию между языками Java и JavaScript, поддерживаемую браузерами Netscape и Internet Explorer, можно вызывать методы апплета:
myApplet.clear();
Атрибут name приобретает большое значение, если вы хотите поместить два взаимодействующих апплета на одну и ту же страницу. Сначала нужно присвоить имя каждому апплету. Затем следует передать строку с именем методу getApplet() класса AppletComplex. В документе, расположенным по адресу http://www.javaworld.com/javatips/jw-javatip80.html, описывается, как можно использовать средства взаимодействия JavaScript и Java для решения классической проблемы: изменения размеров окна апплета, жестко заданных с помощью атрибутов width и height. Это хороший пример интеграции между Java и JavaScript. - alt — у некоторых пользователей Java может быть отключена в браузере возможно, системным администратором-перестраховщиком. Тогда вы можете использовать атрибут alt для отображения сообщения таким пользователям:
<applet code=»MyApplet.class» width=»100″ height=»200″ alt=»If you activated Java, you would see my applet here»>
Если браузер вообще не может обрабатывать апплеты, он игнорирует неизвестные ему дескрипторы applet и param. Весь текст между дескрипторами <applet> и </applet> отображается браузером. В противоположность этому, браузеры, оснащенные Java, не отображают текст между <applet> и </applet>. Вы можете отображать сообщения внутри этих дескрипторов для тех, кто до сих пор применяет доисторические браузера.
<applet code=»MyApplet.class» width=»100″ height=»200″>
Если бы ваш браузер понимал Java, здесь бы отображался апплет.
</applet>