Понятие апплета
В первом упоминании Java-технологии, наиболее перспективными выглядели, так называемые, апплеты (небольшие программы, исполняемые внутри броузера, и позволяющие сделать web-страницы более интерактивными). Вспомним Internet 1995 года, когда большинство web-страниц было статичными, а динамическое содержимое состояло из Perl-скриптов, исполняемых посредством CGI (Common Gateway Interface) интерфейса.
Особо большого пространства для фантазии при проектировании сайтов не было, отсутствовала анимированная графика, а также какое-либо взаимодействие между пользователями. Такое взаимодействие требует для отправки информации web-серверу использование цикла запроса-ответа иного рода. В то же время, компания Netscape захватила рынок броузеров и первой получила лицензию на использование продукции Java для броузера Netscape Navigator. После этого компания Microsoft также подписала контракт и включила в Internet Explorer свою версию виртуальной машины для поддержки выполнения Java-программ.
Урок Java 145: Аплеты
Спустя несколько лет мир снова взглянул на апплеты, как на программы, встраиваемые в броузер. Разработчики снова стали использовать решения, базирующиеся на апплетах, так как Java Plug-in от Sun позволяет обновлять старую версию виртуальной машины, встроенную в Internet Explorer, до последней – Java Runtime Environment (JRE) – посредством Технологии Get Java.
Однако чем же все-таки является апплет? С технической стороны, апплетом может служить любой класс, расширяемый от класса Applet пакета java.applet. Это фактическое определение, однако не исчерпывающее. Если у вас имеется данный подкласс, вы можете добавить его к web-странице, разместив между тегами — . После этого броузер будет загружать класс апплета и отображать его в назначенном пространстве.
Кроме этого у вас в распоряжении имеются методы init, start, stop и destroy. При рисовании и отображении областей применяется метод paint, так как Applet является подклассом java.awt.Component. Эти пять ключевых методов работают следующим образом:
- init – вызывается при загрузке броузером основного класса Applet. Обычно у апплетов нет конструктора. Вместо этого используется код их единовременной инициализации.
- start – вызывается в начале выполнения апплета при посещении пользователем страницы.
- stop – вызывается для остановки выполнения аплета, когда пользователь покидает страницу, содержащую данный апплет.
- destroy – вызывается в случае, если броузер должен завершить работу апплета. При этом ресурсы можно восстановить, однако у вас не будет над ними контроля.
- paint – вызывается, когда броузер определяет, что область отображения апплета является неверной.
В качестве примера рассмотрим апплет, который при вызове каждого из пяти методов выводит информацию в консоль. Метод paint используется также для отображения сообщения на экране. При каждом вызове метода paint число увеличивается. При этом напрашивается вопрос о том, где же можно найти сообщения, записываемые в консоль.
#16 Апплеты Java в HTML файлах тег Applet
Ответ зависит от используемого броузера, а иногда и от его версии. В IE 6.0 Java Console находится в меню Tools. В рабочем цикле Microsoft и IE6 консоль расположен в меню View. А в броузерах Mozilla и Netscape 7.0, Java Console находится в меню Web Development (вложено в меню Tools).
Код апплета выглядит следующим образом:
import java.awt.*;
import java.applet.*;
Скомпилируйте апплет так же, как и любой другой исходный файл:
javac FirstApplet.java
Если в файле не будет ошибок, будет создан класс FirstApplet.class.
Загрузка апплетов несколько отличается от загрузки автономных программ. Вместо обеспечения основного метода, исполняемого один раз при загрузке файла, загрузка апплета требует наличия HTML-файла. Именно в нем размещается тег . Вот как выглядит определение тега:
// Обязательные CODE = appletClass or OBJECT = serializedApplet HEIGHT = pixels WIDTH = pixels // Необязательные CODEBASE = codebaseURL ARCHIVE = archiveList ALT = alternateText NAME = instanceName ALIGN = alignment HSPACE = pixels VSPACE = pixels > NAME = attribute1 VALUE = value1> NAME = attribute2 VALUE = value2> . Alternate HTML
Для апплета, файл-загрузчик должен выглядеть так, как представлено ниже, и располагаться в той же директории, что и файл .class:
code=FirstApplet height=200 width=200>
Атрибут code указывает имя загружаемого класса. Значение атрибутов width и height очевидно – при их помощи выставляется желаемый размер отображения апплета. Если файл класса апплета использует базовую директорию отличную от директории файла-загрузчика HTML, вам потребуется задать CODEBASE, позволяющий указать броузеру расположение базовой директории.
Поместите данный тег в любой HTML-файл и загрузите его в броузере.
Далее представлен пример метода, содержащего несколько локальных внутренних классов:
ПРИМЕЧАНИЕ: При использовании виртуальной машины Microsoft, Java консоль может отобразить ошибку NoClassDefFoundError. Если у вас не установлен Java Plug-in, то запуск апплета при помощи виртуальной машины Microsoft будет невозможным, так как с момента ее выпуска формат файла .class изменился. Для того чтобы сделать файл .class совместимым с более старыми версиями Microsoft VM, нельзя использовать программные средства новее версии 1.1.4, а компилировать следует при помощи опции –target следующим образом:
javac -target 1.1 FirstApplet.java
Подобной проблемы не возникнет, если у вас был установлен Java Plug-in. В этом случае вам потребуется просто скомпилировать исходный код и загрузить HTML-файл в своем броузере.
Запуск потоков в апплетах
Используя потоки в апплетах, необходимо учитывать несколько важных концепций:
-
Создавая апплет, вы расширяете класс Applet. Поэтому, для того чтобы использовать потоки, необходимо реализовать интерфейс Runnable или определить поток как внутренний класс Thread.
public class Example extends Applet implements Runnable
Следующий апплет демонстрирует скроллинг текста, который «проходит» по своему собственному потоку, что позволяет вносить новый текст в текстовое поле во время его прокрутки. Если бы прокручивающийся текст не находился в отдельном потоке, то этот текст так бы загрузил ЦПУ, что вводить текст в поле было бы невозможным.
import java.applet.*;
import java.awt.*;
field = new TextField ( «Type Here» ) ;
add ( field ) ;
>
catch ( InterruptedException e ) >
>
>
public void paint ( Graphics g ) g.drawString ( text, 0 , 150 ) ;
Создайте HTML-страницу, как показано далее, после чего запустите ее в программе для просмотра апплетов или в броузере.
Test Program code=»ExampleThreads.class» width=»400″ height=»200″>
При запуске приложение должно выглядеть следующим образом:
Классы Applet, Image и MediaTracker
В представленной ранее статье описано, как посредством HTML-страницы передавать в апплет некоторую информацию, такую как местоположение файла класса, а также высота и размеры самого апплета. Кроме передачи информации о самом апплете и его исходном файле, можно также передавать необязательные параметры, используя для этой цели теги PARAM и метод getParameter класса Applet.
Например, вы хотите, чтобы в апплете отображалась графические или какие-либо другие объекты. Для того чтобы в апплете можно было использовать изображения, необходимо сначала связать каждое из них с абстрактным классом Image. Затем, путем передачи параметров через HTML-файл, можно задать информацию о количестве изображений и их именах.
Например, если вам необходимо отобразить в апплете четыре изображения, можно начать со строки:
Image images = new Image [ 4 ] ;
У класса Image также есть методы getWidth и getHeight, которые возвращают значение размеров изображений в пикселях.
Тег PARAM имеет следующий синтаксис:
NAME = attribute1 VALUE = value1>
При помощи тега PARAM можно указывать апплету количество используемых изображений:
NAME = number VALUE=4>
При помощи тегов PARAM укажем в HTML-файле имена файлов с изображениями:
NAME = image1 VALUE=seahorse.jpg> NAME = image2 VALUE=rockfish.jpg> NAME = image3 VALUE=tubesnout.jpg> NAME = image4 VALUE=seabass.jpg>
Укажите апплету извлечь данные параметры при помощи метода getParameter. Строка String, передаваемая в метод getParameter, возвращает в HTML-тег значение названного параметра.
getParameter ( «image1» ) ;
возвращает строку seahorse.jpg.
Для того чтобы узнать местонахождение встраиваемых ресурсов апплета вызовите метод getCodeBase, который возвратит их URL-адрес. Метода getImage позволяет извлечь объект изображения для выведения его на экран:
getImage ( getCodeBase () , «CoLogo.jpg» ) ;
Осуществлять более сложные операции (такие как переключение между изображениями) можно при помощи класса MediaTracker, позволяющего управлять загружаемыми изображениями и отображать их статус. Класс MediaTracker является классом утилиты, используемым для отслеживания статуса многочисленных медиа-объектов.
Чтобы сконструировать объект MediaTracker, вызовите конструктор MediaTracker и передайте ему Component, который выполняет прорисовку изображений.
ImagePanel p = new ImagePanel () ;
MediaTracker tracker = new MediaTracker ( p ) ;
Если вы уже создали объект MediaTracker, задайте ему изображение, вызвав для этого метод addImage (Image image, int ID). Кроме того, каждому изображению может быть назначен уникальный идентификатор. Данный идентификатор контролирует порядок приоритетов, в котором выбираются изображения. С его помощью можно также идентифицировать уникальные наборы независимых изображений. Чем больше значение ID, тем выше приоритет загрузки изображений.
tracker.addImage ( image, IMAGE_ID ) ;
Для того чтобы определить, загружено ли изображение и готово ли оно к прорисовке, вызовите один из нижеперечисленных методов:
- checkAll – проверяет, закончилась ли загрузка всех изображений, отслеживаемых данным объектом media tracker.
- checkAll(boolean load) – проверяет, закончилась ли загрузка всех изображений, отслеживаемых данным объектом media tracker.
- checkID(int id) – проверяет, закончилась ли загрузка всех изображений, отслеживаемых данным объектом media tracker, и помеченных специальным идентификатором.
- statusAll(boolean load) – вычисляет и возвращает побитовый оператор включающего ИЛИ статуса всех media-объектов, отслеживаемых данным объектом media tracker.
- waitForAll() – начинает загрузку всех картинок, отслеживаемых данным media tracker.
- waitForAll(long ms) – начинает загрузку всех изображений, отслеживаемых данным объектом media tracker.
int status = tracker.statusALL () ;
if ( status
System.out.println ( «Images have been loaded» ) ;
В классе MediaTracker есть также другие методы и константы, полезные при работе с изображениями.
A может Вас также заинтересует что-нибудь из этого:
- Java сниппеты → Использование класса JSObject в апплетах
- Разное → Теория и практика Java: Динамическая компиляция и измерение производительности
- Java сниппеты → Блоки статической и объектной инициализации
- Java Standard Edition → Блокировки
- Java Standard Edition → Производительность операций ввода/вывода в Java
- Java сниппеты → Методы для работы с переменным количеством аргументов
Источник: javatutor.net
Апплеты в Джаве
Джава – популярный язык программирования с открытым исходным кодом. Относится к общему назначению. Подходит для создания программного обеспечения самых разных видов.
Преимуществом Java является его синтаксис. Отдельное внимание стоит уделить апплетам в Джаве. Они пригодятся тем, кто планирует заниматься веб-разработкой на соответствующем языке программирования. Далее в статье речь зайдет об апплетах и их применении.
Определение
Апплет – программа Java, которая запускается в интернет-обозревателе. Может выступать в качестве функционального Джава-приложения, так как предусматривает весь прикладной программный интерфейс ЯП.
Пишется апплет в виде байт-кода. Обрабатываются виртуальными Java машинами в браузере перед реализацией. Присутствуют в упомянутом языке с 1995 года. Обычно соответствующие компоненты пишутся на Java и иных языках, компилируемых в байт-коды.
Простыми словами: applets – это веб-приложения для браузеров.
Отличие от полноценного приложения
Программа и апплет – это не одно и то же. Данные компоненты схожи между собой, но у них есть значительные отличия. К ним относят следующие моменты:
- Апплет – это своеобразный Джава-класс. Он расширяет java.applet.Applet.
- В данном компоненте не предусматривается вызов методы main(). Соответствующий класс его не определяет.
- Динамические программы сетевого типа необходимы для того, чтобы их внедряли в HTML-странички.
- Когда пользователь изучает HTML-страницы с applets, происходит загрузка упомянутого компонента на устройство.
- Для того, чтобы изучаемый элемент корректно отображался, необходимо наличие виртуальной машины Java. Она может быть как подключаемым модулем, так и самостоятельной средой.
- При работе виртуальная машина создаст на устройстве экземпляр класса Апплет в Java. Далее она вызывает методы на протяжении всего жизненного цикла изучаемого элемента.
- Наличие строгих правил безопасности, соблюдаемых интернет-обозревателем. Простыми словами – applets хорошо защищены.
Также стоит обратить внимание на то, что другие классы, необходимые апплетам в Java, будут загружаться одним файлом архива.
О жизненном цикле
Класс Applet предусматривает несколько ключевых методов. Они служат основой для создания более сложных и совершенных апплетов:
- Init. Метод, который нужен для инициализации компонентов. Он будет вызываться после того, как пройдет стадия обработки тегов внутри рассматриваемого элемента.
- Start. Вызывается автоматически. Это происходит после того, как браузер использует предыдущий «шаг». Start – метод, который будет каждый раз вызываться, когда пользователь возвращается на страницу, содержащую аплеты.
- Stop. Активируется при закрытии страницы с апплетом на Java. Предусматривается повторный вызов этой команды в пределах одного и того же applet.
- Destroy. Будет вызываться каждый раз, когда происходит обычное завершение работы интернет-обозревателя. Рекомендуется избавляться от всех ресурсов после того, как клиент покинет ту или иную страничку.
Есть еще метод paint. Он начинает работать сразу после того, как обработается start(). Активируется при необходимости апплета в Java рисовать разнообразные образы. Это – фактический наследник java.awt.
Класс Applet
Каждый рассматриваемый компонент – это расширение класса java.applet.Applet. Базовый класс Applet дает доступ к методам, которые его производный класс будет вызывать для получения информации и служб из интернет-обозревателя.
Сюда можно отнести методы, которые получают:
- параметры «динамического приложения»;
- сетевое расположение документа HTML;
- местоположение каталога классов апплетов Java;
- картинки и изображения;
- медиафайлы (примеры – клипы, видео).
Также к данной категории относят методы, выводящие статусные сообщения в браузерах, корректируют размеры applets.
Соответствующий класс предоставляет интерфейс, который позволяет средству просмотра или браузера получить данные об applet. Далее – управляем непосредственной реализацией.
- запрашивать сведения об авторах, версиях и авторских правах рассматриваемого «объекта»;
- устанавливать и удалять applets;
- запрашивать параметры, распознающие динамическое приложение;
- прекращать работу «утилиты»;
- запускать applets.
Соответствующий класс дает возможность по умолчанию реализовывать каждый предложенный метод. По мере надобности они отменяются.
Пример
Чтобы лучше разобраться в выбранном направлении, рекомендуется рассмотреть наглядные примеры. Вот – динамическое приложение со стандартным названием «Привет, Мир!»:
public class HelloWorldApplet extends Applet
public void paint (Graphics g)
g.drawString («Привет, Мир», 25, 50);
Имеющиеся операторы переносят классы в область действия класса Applet. Без них компилятор языка программирование не смог бы распознать классы Applet и Graphics.
Как вызвать
Вызов динамической программы возможен через:
- встраивание директив в HTML-документ;
- просмотром файла через программу просмотра апплетов (можно использовать браузер с поддержкой Java).
Тег — основа для встраивания динамического приложения в веб-документы. Ниже – example вызова Hello, World:
Здесь стоит обратить внимание на следующее:
- Атрибут applet code обязателен. Речь идет об . Он нужен для того, чтобы определить запускаемый класс. Ширина и высота указываются для начального размера панели активации приложения. Директивы апплетов обязательно закрываются тегом .
- Если апплет будет принимать те или иные параметры, для них можно задать значения. Для этого используются теги < param name>.
- Если интернет-обозреватель не поддерживает Java, апплеты в нем не будут обрабатываться. Все, что написано между соответствующими тегами в коде, пропускается.
После запуска динамического приложения браузер или иное средство просмотра будет искать скомпилированный код там, где расположен документ. А если соответствующий компонент располагается за пределами пакета «по умолчанию», он должен быть указан в атрибуте исходного кода. Для этого используется символ «точка» при разделении элементов класса/пакета.
Выше – примеры соответствующих кодов.
Работа с параметрами
Апплет можно заставить реагировать на параметры настройки, которые указаны в исходном документе. А еще – определить их при необходимости.
Получение
Приведенный далее пример – это отображение узора шахматной доски. Первый цвет – черный. Второй – указывается в виде параметров динамического приложения.
- CheckerApplet получает параметры в init(). Он может приобретать их через paint(), но первые вариант – основной. Он более удобный и эффективный.
- Браузер будет вызывать init() для каждого апплета, который им вызывается. Программа просмотра делает это один раз – после непосредственной загрузки динамического приложения. Applet.init() не будет выполнять какие-либо функции. Чтобы пользоваться кодом инициализации, нужно предопределить реализацию по умолчанию.
- Applet.getParameter() будет выбирать параметр от имени параметра. Его значение представляется числовыми, а также иными небуквенными данными. Строчка должна быть проанализирована.
Следующим образом выглядит метод CheckerApplet’s init(), а также частный метод parseSquareSize:
Динамическая программа вызовет частный метод для того, чтобы проанализировать одноименный параметр. Далее происходит обращение к библиотечному методу Integer.parseint(). После «просмотра» строки он вернет целочисленное значение. Исключение появляется каждый раз, когда обнаруживается недопустимый аргумент.
ParseSquareSize() будет перехватывать исключения. При неверном коде апплет не останавливается. Она продолжает функционировать.
Далее динамическая программа вызовет parseColor(). Это нужно для анализа параметра цвета в значение. Процесс заключается в выполнении серии сравнений строк для сопоставления информации. Это требуется для обеспечения работоспособности апплета.
Определение
Example получения параметров был рассмотрен выше. Также можно определять «значения» самостоятельно. Вот – пример кода, имеющего встроенный CheckerApplet:
Имена параметров составлять просто. Апплеты не учитывают регистр при «считывании».
Преобразование приложения
Апплет может быть получен из любого графического приложения Java. Для этого потребуется выполнить следующее:
- Создать HTML-страничку с тегом для предстоящей загрузки. Простыми словами – составить программный код.
- Предоставить подкласс класса JApplet. Он должен быть общедоступным, иначе апплет не загрузится.
- Исключить основной метод в приложении. Рамочное окно для программы не потребуется. Это связано с его отображением в интернет-обозревателе.
- Поместить любой код инициализации из конструктора рамочного окошка в метод инициализации апплета Java. Его объект создавать не придется. Браузер выполнит это автоматически.
- Избавиться от вызова setSize.
- Удалить вызов setDefaultCloseOperation. Динамическая сетевая программа не может быть закрыта. Она завершается тогда, когда пользователь закрывает браузер.
- Если applet code вызывает setTitle, нужно его исключить. Заголовков у динамических программ нет.
Также не нужно вызывать метод setVisible(true). Это связано с тем, что динамические сетевые программы будут отображаться автоматически.
Как быстро разобраться
Апплеты в Java – это не трудно, если грамотно изучить соответствующий компонент. Лучшее решение – дистанционные онлайн-курсы. На них пользователи узнают, что значит надписи public void start, public void init, public void stop и другие, не имея даже базовых навыков в сфере разработки.
На специальных онлайн-курсах быстро обучат инновационным IT-профессиям. Пользователю гарантируют тщательно продуманную программу, рассчитанную на срок до 12 месяцев, постоянное кураторство, а также практику и помощь в формировании портфолио. В конце обучения выдается электронный сертификат, подтверждающий навыки и знания в выбранном направлении.
Источник: otus.ru
Изучаем Java
Первые два примера, представленные в этой книге, — это приложения, написанные на языке Java, т.е самостоятельные программы, аналогичные обычным машинозависимым программам.
С другой стороны, как упоминалось в предыдущей главе, ажиотаж вокруг языка Java был вызван, в основном, его возможностями выполнять апплеты под управлением Web-броузеров.
Мы хотим показать вам, как создать и выполнить апплет в режиме командной строки.
Затем мы загрузим этот апплет в программу для просмотра апплетов (appletviewer), входящую в состав пакета JDK.
В заключение мы отобразим его в Web-броузере.
Перейдите в каталог CoreJavaBook/vlch2/WelcomeApplet, а затем введите
следующие команды.
javac WelcomeApplet. java
appletviewer WelcomeApplet.html
На рис. 2.12 показано то, что вы увидите в окне программы для просмотра апплетов.
Рис. 2.12. Вид апплета WelcomeApplet в окне программы просмотра апплетов
Первая команда нам уже знакома — она вызывает компилятор языка Java. Он компилирует исходный текст апплета, содержащийся в файле WelcomeApplet. java, создавая файл байт-кода WelcomeApplet. class.
Однако на этот раз мы не запускаем интерпретатор языка Java. Вместо этого мы вызываем программу appletviewer. Эта программа специально предназначена для быстрого тестирования апплетов и входит в пакет Java SDK. Она работает не с файлом класса, а с файлом в формате HTML. Содержание файла WelcomeApplet.html показано в листинге 2.3.
Листинг 2.3
Файл WelcomeApplet.java
Если вы знаете язык HTML, то заметите некоторые стандартные команды языка HTML и дескриптор applet, приказывающие программе просмотра апплетов загрузить апплет, код которого содержится в файле WelcomeApplet, class. Программа аррletviewer игнорирует все дескрипторы языка HTML, за исключением дескриптора applet.
Другие дескрипторы языка HTML распознаются, когда файл в формате HTML просматривается броузером, поддерживающим язы к Java 2. Однако тут есть одна проблема.
Версии броузера Netscape 6, броузеры Mozilla и Opera поддерживают язык Java 2 как в среде Windows, так й на платформе Linux, хотя эта возможность является факультативной. Для того чтобы поэкспериментировать с апплетами, просто загрузите самую последнюю версию и убедитесь, она поддерживает Java.
Некоторые версии броузера Internet Explorer вообще не поддерживают язык Java. Другие версии поддерживают лишь очень старую виртуальную машину Java компании Microsoft (Java Virtual Machine). Если вы работаете с броузером Internet Explorer под управлением операционной системы Windows, зайдите на сайт http: //java. sun. com/get Java и загрузите программу Java Plug-In. Она добавит в броузер Internet Explorer возможности Java 2.
На платформе Macintosh под управлением операционной системы OS X возможности языка Java уже интегрированы в броузер Internet Explorer. В частности, на момент написания книги этот броузер поддерживал работу с пакетом J2SE версии 1.3. Система OS 9 поддерживает лишь устаревшую версию 1.1.
Если вы работаете с броузером Netscape 4, можете воспользоваться поддержкой языка Java 2, обеспечиваемой программой Java Plug-In. Однако при работе с апплетами, загружаемыми с помощью дескриптора applet, броузер будет по- прежнему использовать устаревшую виртуальную машину языка Java. Следовательно, придется переписать HTML-файл и вместо дескриптора applet использовать довольно неудобный дескриптор embed. Этот подход нельзя назвать удовлетворительным.
Если ваш броузер поддерживает платформу Java 2, попробуйте загрузить в него апплет. Для этого выполните следующие операции.
Запустите ваш броузер.
Выберите в меню опцию File -> Open File (или эквивалентную опцию).
Перейдите в каталог CoreJavaBook/vlch2/WelcomeApplet.
В диалоговом окне вы должны увидеть файлы WelcomeApplet .html и WelcomeAppletPlugin.html.
Загрузите файл, соответствующий вашей настройке. Броузер загрузит апплет вместе с окружающим его текстом. Он будет выглядеть примерно так, как показано на рис. 2.13.
Легко видеть, что это приложение действительно интерактивно и взаимодействует с Интернет. Нажмите на кнопку «Cay Horstmann». Апплет заставит броузер открыть Web- страницу Кея Хорстманна. Щелкните на кнопке «Gary Cornell». Апплет откроет окно для электронной почты, в котором уже указан адрес электронной почты Гари Корнелла.
Рис, 2.13. Запуск апплета WelcomeApplet с помощью броузера
Заметьте, что ни одна из этих кнопок не работает с программой просмотра аплетов. Эта программа не может посылать почту или отображать на экране Web-страницу, поэтому она просто проигнорирует ваши запросы. Программа просмотра апплетов хороша для тестирования изолированных апплетов, однако для реального взаимодействия апплета с Интернет и другими программами следует загрузить свой апплет в какой-либо броузер.
Апплет можно запустить из вашего текстового редактора или интегрированной среды разработки. При работе с редактором Emacs выберите в меню опцию JDE -> Run Applet.
При работе с редактором TextPad выберите опцию Tools -> Run Java Applet или используйте комбинацию клавиш . Перед вами откроется диалоговое окно, в котором будут представлены все HTML – файлы, хранящиеся в текущем каталоге. Если вы нажмете клавишу , редактор TextPad автоматически создаст минимальный HTML-файл.
В среде Sun ONE Studio нужно просто загрузить HTML-файл с дескрипторами апплета. Эта среда содержит небольшой броузер, выполняющий апплет на соответствующей Web-странице. В качестве альтернативы можно щелкнуть правой кнопкой мыши на файле с исходным текстом апплета и установить значение свойства «Executor» на закладке равным
«Applet Execution».
Код апплета Welcome показан в листинге 2.4. В данный момент его нужно лишь бегло просмотреть. К созданию апплетов мы еще вернемся в главе 10.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*,
import java.net.*;
public class WelcomeApplet extends JApplet
public void init()
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
JLabel label = new JLabel(getParameter(«greeting») ,
SwingConstants.CENTER);
label.setFont(new Font(«Serif», Font.BOLD, 18));
contentPane.add(label, BorderLayout.CENTER);
JPanel panel = new JPanel();
JButton cayButton = new JButton(«Cay Horstmann»);
cayButton.addActionListener(makeURLActionListener
(«http://www.horstmann.com»));
Jbutton garyButton = new Jbutton(«Gary Cornell»);
garyButton.addActionListener(makeURLActionListener
(«mailto:garyOthecornells.com»));
panel.add(garyButton);
contentPane.add(panel, BorderLayout.South);
>
public ActionListener makeURLActionListener(fina1 string u)
return new
ActionListener ()
public void actionPerformed(ActionEvent event)
try getAppleContext().showDocument(u);
>
catch(Exeption e) ( e.printStackTrace (); >
e. printStackTrace ();
>
>
> ;
В этой главе мы изучили механизмы компиляции и запуска программ, написанных на языке Java. Теперь мы готовы перейти к главе 3, в которой приступим к изучению языка Java.
Сергей Владимирцев
26.01.2011
Источник: www.java-study.ru
Апплеты. Основы программирования
SimpleApplet.java import java.awt.*; import java. applet.*; public class SimpleApplet extends Applet < public void paint (Graphics g) < g.drawString(«A ‘Simple Applet», 20, 20); >Апплет начинаетеся с двух операторов import. Первый импортирует AWT классы (из большой иерархии awt-пакетов Java) (AWT — Abstract Windowing Toolkit — абстрактный оконный интерфейс.).
Таким образом, апплеты взаимодействуют с пользователем черезAWT, а не через классы консольного ввода/вывода.AWTосуществляет поддержку графического оконного интерфейса. СистемаAWTклассов достаточно велика и сложна. В приведенном простом апплете использованиеAWTочень ограничено. Второй операторimport импортирует пакетjava.applet, который содержит классApplet.
Каждый создаваемый апплет должен быть подклассом этого класса. Следующая строка в программе объявляет класс SimpleApplet. Он должен быть объявлен какpublic, потому что к нему необходимо обеспечить доступ из кодов, которые находятся вне программы. Внутри SimpleApplet объявлен методpaint(). Этот метод определен вAWTи должен быть переопределен апплетом.
Методpaint()вызывается каждый раз, когда апплет должен восстанавливать изображение своего вывода. Данная ситуация может возникать в нескольких случаях. Например, окно,в котором выполняется апплет, может быть перекрыто другим окном, которое затем закрывается. Или окно апплета может быть свернуто и затем восстановлено. Методpaint()вызывается также, когда апплет начинает выполнение.
Безотносительно причины, всякий раз, когда апплет должен ‘перерисовать свой вывод, вызывается методpaint(). Метод имеет один параметр, типаGraphics, через который получает графический контекст, описывающий графическую среду выполнения апплета. Этот контекст используется всякий раз, когда апплету.требуется вывод.
Внутри paint()находится обращение к методуdrawstring(), который является членом классаGraphics. Этот метод выводит строку, начиная с указанных его аргументами (х, у)-координат в окне апплета. Он имеет следующую общую форму: void drawString (String message, int x, int y) Здесь message — строка, которую нужно вывести. В окне апплета левый верхний угол имеет координаты (0, 0).
Обращение кdrawstring()в апплете отображает сообщение «A Simple Applet», начиная с координат (20, 20). Координаты окна апплета измеряются в пикселах. Заметим, что апплет не содержит метода main(). В отличие от Java-программ, апплеты не начинают выполнение вmain(). Фактически, большинство апплетов даже не имеют этого метода.
Апплет начинает выполнение, когда имя его класса передается программе просмотра апплетов или браузеру. После ввода исходного кода SimpleApplet откомпилируйте его так же, как вы компилировали программы. Существует два способа выполнения апплета: Выполнение апплета Java-совместимом Web-браузером, типа Netscape Navigator или Microsoft Internet Explorer.
Использование программы просмотра апплетов, типа стандартной утилиты JDKappletviewer. Программа просмотра апплетов выполняет апплет в его окне. Это, вообще, самый быстрый и простой способ проверки работы апплета. Для выполнения апплета в Web-браузере нужно записать короткий текстовый файл в формате языкаHTML(HyperText Markup Language) — язык разметки гипертекста), который содержит специальный тег.
СледующийHTML-файл выполняет SimpleApplet: Внутри тега его параметрыwidth иheight определяют размеры окна апплета. После создания файла, можно запустить браузер и затем загрузить этот файл, что приведет к выполнениюSimpleApplet. Для.выполнения SimpleApplet с помощью программы просмотра апплетов можно использовать этот же HTML-файл.
Например, если предшествующий HTML-файл назватьRunApp.html, то следующая командная строка выполнитSimpleApplet: C:>appletviewer RunApp.html Это команда создает окно, показанное на рис. 1 Рис. 1.Окно апплета Однако существует и более удобный метод, с помощью которого можно ускорить тестирование. Для этого нужно просто включить в заголовок файла исходного кода Java комментарий, который содержит HTML-тег . Это документирует исходный код прототипом необходимых инструкций HTML, и вы можете тестировать откомпилированный апплет, просто запуская программу просмотра апплетов с файлом исходного кода Java (в качестве операнда). При использовании этого метода исходный файлSimpleApplet.javaвыглядит так:
Ограничение
Для продолжения скачивания необходимо пройти капчу:
Источник: studfile.net