Апплет – это 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);
}
}
В результате работы программы мы получим следующий результат:
Так выглядит простейший апплет. Но функционал апплетов позволяет нам делать гораздо более интересные вещи.
Обработка событий
Допустим, нам необходимо создать апплет, который будет обрабатывать нажатия клавиш на клавиатуре и выполнять определённые действия.
Рассмотрим пример простого апплета.
Пример:
Класс 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) {
}
}
В результате работы программы мы получим следующий результат:
Апплеты также позволяют нам выводить изображения, проигрывать аудиофайлы и т.д.
В этом уроке мы изучили основы апплетов в языке программирования Java и рассмотрели примеры простых апплетов.
На этом мы завершаем цикл обучающих статей по Java Core.