Меню

Что такое джава апплет бесплатно



36. Java — Основы работы с апплетами

Апплет – это программа Java, запускаемая в веб-браузере. Апплет может быть полнофункциональным Java-приложением, поскольку имеет в своем распоряжении весь прикладной программный интерфейс Java.

Содержание

Между апплетом и автономным Java-приложением есть некоторые важные различия, в том числе следующие:

  • Апплет это класс Java, расширяющий класс java.applet.Applet.
  • Метод main() не вызывается в апплете, и класс Applet не определяет main().
  • Динамические сетевые программы предназначены для встраивания в HTML-страницу.
  • Если пользователь просматривает HTML-страницу, содержащую апплет, код для апплета загружается на компьютер пользователя.
  • Для просмотра апплета требуется виртуальная машина Java. Виртуальная машина Java может быть либо подключаемым модулем веб-браузера, либо отдельной средой выполнения.
  • Виртуальная машина Java на устройстве пользователя создает экземпляр класса Applet и вызывает различные методы в течение жизненного цикла апплета.
  • Динамические сетевые программы имеют строгие правила безопасности, которые соблюдаются веб-браузером. Безопасность апплета часто называют службой безопасности изолированной программной среды, когда апплет сравнивают с ребенком, играющим в песочнице с различными правилами, которые необходимо соблюдать.
  • Другие классы, которые нужны апплету, можно загрузить в одном файле архива Java (JAR).

Жизненный цикл апплета

Четыре метода в классе Applet определяют основу для создания любого серьезного апплета:

  • init — этот метод предназначен для любой инициализации, необходимой для вашего апплета. Он вызывается после обработки тегов параметров внутри тега апплета.
  • start — этот метод автоматически вызывается после того, как браузер вызывает метод init. Он также вызывается всякий раз, когда пользователь возвращается на страницу, содержащую апплет, после перехода на другие страницы.
  • stop — этот метод автоматически вызывается, когда пользователь покидает страницу, на которой находится апплет. Поэтому его можно вызывать повторно в одном и том же апплете.
  • destroy — этот метод вызывается только при обычном завершении работы браузера. Поскольку апплеты предназначены для размещения на странице HTML, обычно не следует оставлять ресурсы после того, как пользователь покидает страницу, содержащую апплет.
  • paint — вызывается сразу после метода start(), а также каждый раз, когда апплету необходимо перерисовать свой образ в браузере. Метод paint() фактически унаследован от java.awt.

Динамическая сетевая программа «Привет, Мир»

Ниже приведен простой апплет HelloWorldApplet.java.

Эти операторы импорта переносят классы в область действия нашего класса Applet:

Без этих операторов импорта компилятор Java не распознал бы классы Applet и Graphics, на которые ссылается класс Applet.

Класс Applet

Каждый апплет является расширением класса java.applet.Applet. Базовый класс Applet предоставляет методы, которые производный класс Applet может вызывать для получения информации и служб из контекста браузера.

К ним относятся методы, которые выполняют следующее:

  • Получают параметры апплета.
  • Получают сетевое расположение файла HTML, содержащего апплет.
  • Получают сетевое расположение каталога классов апплета.
  • Выводят статусное сообщение в браузере.
  • Получают изображение.
  • Получают аудиоклип.
  • Воспроизводят аудиоклип.
  • Изменяют размер апплета.

Кроме того, класс Applet предоставляет интерфейс, с помощью которого средство просмотра или браузер получает информацию об апплете и управляет его выполнением. Зритель может:

  • Запросить информацию об авторе, версии и авторских правах апплета.
  • Запросите описание параметров, которые распознают апплет.
  • Инициализировать апплет.
  • Удалить апплет.
  • Запустить выполнение апплета.
  • Остановить выполнение апплета.

Класс Applet предоставляет реализации по умолчанию для каждого из этих методов. При необходимости эти реализации могут быть отменены.

Динамическая сетевая программа Hello, World скомпилирована в данных условиях. Единственный переопределяемый метод – это метод отрисовки.

Вызов апплета

Динамическая сетевая программа может быть вызвана путем встраивания директив в файл HTML и просмотра файла через программу просмотра апплета или браузер с поддержкой Java.

Примечание. Вы можете обратиться к HTML-тегу апплета, чтобы узнать больше о вызове апплета из HTML.

Если апплет принимает параметры, для параметров можно передать значения, добавив теги

Средство просмотра или браузер ищет скомпилированный код Java в том месте, где находится документ. Чтобы указать иное, используйте атрибут кодовой базы тега , как показано далее:

Если апплет находится в пакете, отличном от пакета по умолчанию, пакет хранения должен быть указан в атрибуте кода с использованием символа точки (.) для разделения компонентов пакета/класса. Например:

Получение параметров апплета

В следующем примере показано, как заставить апплет реагировать на параметры настройки, указанные в документе. Этот апплет отображает узор шахматной доски черного и второго цвета.

Второй цвет и размер каждого квадрата могут быть указаны в качестве параметров апплета в документе.

Читайте также:  Презентация что такое экономика для детей бесплатно скачать

CheckerApplet получает свои параметры в методе init(). Он также может получать свои параметры в методе paint(). Однако получение значений и сохранение настроек один раз при запуске апплета, а не при каждом обновлении, более удобно и эффективно.

Средство просмотра апплета или браузер вызывает метод init() для каждого апплета, который он запускает. Программа просмотра вызывает init() один раз, сразу после загрузки апплета. (Applet.init() не выполняет никаких функций.) Переопределите реализацию по умолчанию, чтобы вставить пользовательский код инициализации.

Метод Applet.getParameter() выбирает параметр по имени параметра (значение параметра всегда является строкой). Если значение представлено числовыми или другими небуквенными данными, строку необходимо проанализировать.

Ниже приведен скелет программы CheckerApplet.java

Вот метод CheckerApplet’s init() и частный метод parseSquareSize():

Динамическая сетевая программа вызывает parseSquareSize() для анализа параметра squareSize. parseSquareSize() вызывает библиотечный метод Integer.parseInt(), который анализирует строку и возвращает целое число. Integer.parseInt() выдает исключение всякий раз, когда его аргумент недопустим.

Следовательно, parseSquareSize() перехватывает исключения, а не позволяет апплету останавливаться при неверном вводе.

Динамическая сетевая программа вызывает parseColor(), чтобы проанализировать параметр цвета в значение цвета. parseColor() выполняет серию сравнений строк, чтобы сопоставить значение параметра с именем предопределенного цвета. Вам необходимо реализовать эти методы, чтобы этот апплет работал.

Определение параметров апплета

Ниже приведен пример HTML-файла со встроенным CheckerApplet. Файл HTML определяет оба параметра апплета с помощью тега

Примечание: в именах параметров не учитывается регистр.

Преобразование приложений в апплет

Графическое приложение Java (то есть приложение, которое использует графический интерфейс пользователя и которое можно запускать с помощью средства запуска программ Java) легко преобразовать в апплет, которую можно встроить в веб-страницу.

Ниже приведены конкретные шаги для преобразования приложения в апплет.

  • Создайте HTML-страницу с соответствующим тегом для загрузки кода апплета.
  • Предоставьте подкласс класса JApplet. Сделайте этот класс общедоступным. В противном случае апплет не может быть загружен.
  • Исключите основной метод в приложении. Не создавайте рамочное окно для приложения. Ваше приложение будет отображаться внутри браузера.
  • Переместите любой код инициализации из конструктора рамочного окна в метод инициализации апплета. Вам не нужно явно создавать объект апплета. Браузер создает его для вас и вызывает метод init.
  • Удалите вызов setSize; для апплета размер задается с указанием параметров ширины и высоты в файле HTML.
  • Удалите вызов setDefaultCloseOperation. Динамическую сетевую программу нельзя закрыть; она завершается, когда браузер закрывается.
  • Если приложение вызывает setTitle, исключите вызов метода. Динамические сетевые программы не могут иметь заголовков. (Вы, конечно, можете присвоить заголовок самой веб-странице, используя тег заголовка HTML.)
  • Не вызывайте setVisible(true). Динамическая сетевая программа отображается автоматически.

Обработка событий

Динамические сетевые программы наследуют группу методов обработки событий от класса Container. Класс Container определяет несколько методов, таких как processKeyEvent и processMouseEvent, для обработки определенных типов событий, а затем один универсальный метод, называемый processEvent.

Чтобы отреагировать на событие, апплет должен переопределить соответствующий метод для конкретного события.

Теперь давайте назовем этот апплет следующим образом:

Первоначально апплет будет отображать «инициализацию апплета. запуск апплета». Затем, как только вы щелкнете внутри прямоугольника, также будет отображаться «кнопка мышки нажата».

Отображение изображений

Динамическая сетевая программа может отображать изображения в формате GIF, JPEG, BMP и других форматах. Чтобы отобразить изображение в апплете, вы используете метод drawImage() из класса java.awt.Graphics.

Ниже приведен пример, иллюстрирующий все шаги для отображения изображений.

Теперь давайте назовем этот апплет следующим образом:

Воспроизведение аудио

Динамическая сетевая программа может воспроизводить аудиофайл, представленный интерфейсом AudioClip в пакете java.applet. Интерфейс AudioClip имеет три метода, в том числе:

  • public void play() — воспроизводит аудиоклип один раз с самого начала.
  • public void loop() — вызывает непрерывное воспроизведение аудиоклипа.
  • public void stop() — останавливает воспроизведение аудиоклипа.

Чтобы получить объект AudioClip, необходимо вызвать метод getAudioClip() класса Applet. Метод getAudioClip() немедленно возвращается независимо от того, ссылается ли URL-адрес на фактический аудиофайл. Аудиофайл не загружается, пока не будет сделана попытка воспроизвести аудиоклип.

Ниже приведен пример, иллюстрирующий все шаги для воспроизведения звука.

Теперь давайте назовем этот апплет следующим образом:

Источник

Основы Java-апплета

Давайте сначала разберемся, сколько Package поддерживает GUI:

  1. AWT (абстрактный оконный инструментарий)
  2. свинг

Возврат к созданию приложения с графическим интерфейсом:

Java была запущена 23 января 1996 года (JDK 1.0), и в то время она поддерживала только приложение CUI (Character User Interface). Но в 1996 году VB (Visual Basic) от Microsoft был предпочтен для программирования GUI. Поэтому разработчики Java в спешке (то есть в течение 7 дней) предоставили поддержку графического интерфейса от операционной системы (ОС). Теперь такие компоненты, как кнопка и т. Д. были зависимы от платформы (т.е. на каждой платформе будет свой размер, кнопка формы). Но они сделали пересечение таких компонентов со всех платформ и дали небольшую библиотеку, которая содержит эти пересечения, и она доступна в технологии AWT (Abstract Window Toolkit), но не имеет расширенных функций, таких как диалоговое окно и т. Д.

Читайте также:  О чем фильм мэнсфилд парк 2007 онлайн бесплатно в хорошем качестве

Теперь, чтобы запустить Апплет, java нужен браузер, и в то время там был только «Internet Explorer», но Microsoft верит в монополию. Таким образом, «SUN Micro-System» (компания, которая разработала Java) заключила контракт с другой компанией, известной как «Netscape» (которая разработала Java Script), и теперь компания «Netscape» также известна как «Mozilla Firefox», которую мы все знаем как браузер. Теперь эти две компании разработали технологию под названием «SWING», и преимущество заключается в том, что компоненты SWING производятся самой Java. Поэтому теперь он не зависит от платформы, а также были добавлены некоторые дополнительные функции, которых не было в технологии AWT. Таким образом, мы можем сказать, что SWING намного более продвинутый по сравнению с технологией AWT.

Что такое апплет?
Апплет — это Java-программа, которая может быть встроена в веб-страницу. Он работает внутри веб-браузера и работает на стороне клиента. Апплет внедряется в HTML-страницу с использованием тега APPLET или OBJECT и размещается на веб-сервере.

Апплеты используются, чтобы сделать сайт более динамичным и интересным.

Важные моменты :

  1. Все апплеты являются подклассами (прямо или косвенно) класса java.applet.Applet .
  2. Апплеты не являются самостоятельными программами. Вместо этого они запускаются либо в веб-браузере, либо в программе просмотра апплетов. JDK предоставляет стандартный инструмент для просмотра апплетов, который называется applet viewer.
  3. В общем случае выполнение апплета не начинается с метода main ().
  4. Вывод окна апплета не выполняется System.out.println () . Скорее это обрабатывается различными методами AWT, такими как drawString () .

Жизненный цикл апплета:

Важно понимать порядок, в котором вызываются различные методы, показанные на изображении выше. Когда начинается апплет, в следующей последовательности вызываются следующие методы:

Когда апплет завершается, происходит следующая последовательность вызовов методов:

Давайте внимательнее посмотрим на эти методы.

  1. init (): метод init () является первым вызываемым методом. Здесь вы должны инициализировать переменные. Этот метод вызывается только один раз во время выполнения вашего апплета.
  2. start (): метод start () вызывается после init () . Он также вызывается для перезапуска апплета после его остановки. Обратите внимание, что init () вызывается один раз, т.е. при первой загрузке апплета, тогда как start () вызывается каждый раз, когда HTML-документ апплета отображается на экране. Таким образом, если пользователь покидает веб-страницу и возвращается, апплет возобновляет выполнение при запуске () .
  3. paint (): метод paint () вызывается каждый раз, когда вывод приложения, основанного на AWT, должен быть перерисован. Такая ситуация может возникнуть по нескольким причинам. Например, окно, в котором запущен апплет, может быть перезаписано другим окном и затем открыто. Или окно апплета может быть свернуто и затем восстановлено.

paint () также вызывается, когда апплет начинает выполнение. Независимо от причины, всякий раз, когда апплет должен перерисовать свой вывод, вызывается paint () .

Метод paint () имеет один параметр типа Graphics . Этот параметр будет содержать графический контекст, который описывает графическую среду, в которой работает апплет. Этот контекст используется всякий раз, когда требуется вывод в апплет.
Примечание: это единственный метод среди всех методов, упомянутых выше, который параметризован. Это прототип
общественная пустота краски (графика г)
где g — ссылка на объект класса Graphic.

Теперь возникает вопрос:
В. В прототипе метода paint () мы создали ссылку на объект, не создавая его объект. Но как можно создать ссылку на объект, не создавая его объект?
Отв. Всякий раз, когда мы передаем ссылку на объект в аргументах, объект будет предоставлен самим вызывающим. В этом случае вызывающим методом paint () является браузер, поэтому он предоставит объект. То же самое происходит, когда мы создаем очень простую программу в обычных программах Java. Например:

Здесь мы создали ссылку на объект, не создавая его объект, но он все еще выполняется, потому что он является вызывающим, то есть JVM предоставит ему объект.

  • stop (): метод stop () вызывается, когда веб-браузер покидает документ HTML, содержащий апплет, например, когда он переходит на другую страницу. Когда вызывается stop () , возможно, апплет запущен. Вы должны использовать stop () для приостановки потоков, которые не должны запускаться, когда апплет не виден. Вы можете перезапустить их при вызове start (), если пользователь возвращается на страницу.
  • destroy (): метод destroy () вызывается, когда среда определяет, что ваш апплет должен быть полностью удален из памяти. На этом этапе вы должны освободить все ресурсы, которые может использовать апплет. Метод stop () всегда вызывается перед destroy () .
  • Читайте также:  Когда усталая подлодка текст скачать бесплатно

    Создание апплета Hello World:

    Давайте начнем с апплета HelloWorld:

    // Апплет Hello World
    // Сохранить файл как HelloWorld.java

    // класс HelloWorld расширяет апплет

    public class HelloWorld extends Applet

    // Переопределяем метод paint ()

    public void paint(Graphics g)

    g.drawString( «Hello World» , 20 , 20 );

    Объяснение:

    1. Вышеприведенная Java-программа начинается с двух операторов import. Первый оператор import импортирует класс Applet из пакета applet. Каждый создаваемый вами апплет на основе AWT (Abstract Window Toolkit) должен быть подклассом (прямо или косвенно) класса Applet. Второе утверждение импортирует класс Graphics из пакета AWT.
    2. Следующая строка в программе объявляет класс HelloWorld. Этот класс должен быть объявлен как открытый, так как к нему будет обращаться код, находящийся за пределами программы. Внутри HelloWorld объявляется paint () . Этот метод определяется AWT и должен быть переопределен апплетом.
    3. Внутри paint () есть вызов drawString () , который является членом класса Graphics . Этот метод выводит строку, начинающуюся в указанном X, Y месте. Он имеет следующую общую форму:

    Здесь message — строка для вывода, начинающаяся с x, y. В окне Java верхний левый угол — это местоположение 0,0. Вызов drawString () в апплете приводит к отображению сообщения «Hello World», начиная с местоположения 20,20.

    Обратите внимание, что апплет не имеет метода main () . В отличие от программ Java, апплеты не начинают выполнение с main () . На самом деле, большинство апплетов даже не имеют метода main () . Вместо этого апплет начинает выполнение, когда имя его класса передается в средство просмотра апплета или в сетевой браузер.

    Запуск апплета HelloWorld:

    После того, как вы введете исходный код для HelloWorld.java, скомпилируйте его так же, как вы компилировали Java-программы (используя команду javac ). Тем не менее, запуск HelloWorld с командой java вызовет ошибку, потому что это не приложение.

    Существует два стандартных способа запуска апплета:

    1. Выполнение апплета в Java-совместимом веб-браузере.
    2. Использование программы просмотра апплетов, например стандартного инструмента applet-viewer. Программа просмотра апплетов выполняет ваш апплет в окне. Как правило, это самый быстрый и простой способ проверить ваш апплет.

    Каждый из этих методов описан далее.

      Использование веб-браузера с поддержкой Java: чтобы выполнить апплет в веб-браузере, нам нужно написать короткий текстовый файл HTML, содержащий тег, который загружает апплет. Мы можем использовать тег APPLET или OBJECT для этой цели. Используя APPLET, вот HTML-файл, который выполняет HelloWorld:

    Операторы ширины и высоты определяют размеры области отображения, используемой апплетом. Тег APPLET содержит несколько других опций. После создания этого HTML-файла вы можете использовать его для запуска апплета.

    ПРИМЕЧАНИЕ. Chrome и Firefox больше не поддерживают NPAPI (технология, необходимая для апплетов Java). Обратитесь сюда

    Использование appletviewer: это самый простой способ запустить апплет. Чтобы выполнить HelloWorld с помощью программы просмотра апплета, вы также можете выполнить файл HTML, показанный ранее. Например, если предыдущий файл HTML сохранен с
    RunHelloWorld.html, тогда следующая командная строка запустит HelloWorld:

    appletviewer с исходным java-файлом: если вы добавите комментарий в начало файла исходного кода Java, который содержит тег APPLET, тогда ваш код документируется с помощью прототипа необходимых операторов HTML, и вы можете запустить скомпилированный апплет, просто запустив средство просмотра апплета с вашим файлом исходного кода Java. Если вы используете этот метод, исходный файл HelloWorld выглядит следующим образом:

    // Апплет Hello World
    // Сохранить файл как HelloWorld.java

    // класс HelloWorld расширяет апплет

    Источник