Руководство по Java Core. Апплеты.

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


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

  • Applet должен наследовать класс java.applet.Applet.
  • Для запуска апплета не нуден метод main().
  • Апплеты встроены в HTML-страницу.
  • Исходный код апплета загружается на компьютер пользователя вместе с HTML-страницей.
  • Апплеты имеют строгие правила безопасности.
  • Классы, которые используются апплетами должны быть загружены отдельным JAR файлом.
  • Для отображения апплета необходима JVM. Она может быть установлена на машине пользователя, либо быть плагином самого веб-браузера.
  • JVM на машине пользователя создаёт экземпляр объекта и вызывает его методы в течение всего жизненного цикла апплета.

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

Жизненный цикл апплета связан с такими методами:

  • init()
    Этот метод инициализирует наш апплет.
  • start()
    Метод start() автоматически вызывается веб-браузером после вызова метода init(). Этот метод также запускается после возврата на страницу, на которой находится апплет.
  • paint()
    Этот метод запускается сразу после метода start() и каждый раз, когда апплету необходимо “перерисовать” себя на странице.
  • stop()
    Метод stop() автоматически вызывается, когда пользователь покидает страницу, на которой находится апплет.
  • destroy()
    Метод destroy() вызывается только  при стандартном закрытии веб-браузера. Это крайне логично, так как вне браузера пользователь не может получить доступ к апплету.

Для понимания того, как это работает на практике, рассмотрим пример простого приложения.

Пример:

Класс SimpleApplet


import java.applet.Applet;
import java.awt.*;

public class SimpleApplet extends Applet {
    public void paint(Graphics graphics) {
        graphics.drawString("Hello, world!!!", 25, 50);
    }
}

В результате работы программы мы получим следующий результат:
AppletTesting

Так выглядит простейший апплет. Но функционал апплетов позволяет нам делать гораздо более интересные вещи.


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

Допустим, нам необходимо создать апплет, который будет обрабатывать нажатия клавиш на клавиатуре и выполнять определённые действия.

Рассмотрим пример простого апплета.

Пример:

Класс EventHandlingDemo


import java.applet.Applet;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class EventHandlingDemo extends Applet implements MouseListener {
    StringBuffer stringBuffer;

    public void init() {
        addMouseListener(this);
        stringBuffer = new StringBuffer();
        addItem("Applet is Initialized.");
    }

    public void start() {
        addItem("Applet is started.");
    }

    public void stop() {
        addItem("Applet is stopped.");
    }

    public void destroy() {
        addItem("Applet is destroyed.");
    }

    void addItem(String str) {
        System.out.println(str);
        stringBuffer.append(str);
        System.out.println("\n");
        repaint();
    }

    public void paint(Graphics graphics) {
        graphics.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
        graphics.drawString(stringBuffer.toString(), 10, 20);
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        addItem("Mouse clicked...");
    }

    @Override
    public void mousePressed(MouseEvent e) {
        addItem("Mouse pressed...");
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        addItem("Mouse released...");
    }

    @Override
    public void mouseEntered(MouseEvent e) {

    }

    @Override
    public void mouseExited(MouseEvent e) {

    }
}

В результате работы программы мы получим следующий результат:

EventHandlingApplet

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

В этом уроке мы изучили основы апплетов в языке программирования Java и рассмотрели примеры простых апплетов.

На этом мы завершаем цикл обучающих статей по Java Core.