Використання jdk (java developer's kit)

Компіляція вихідного коду Java в машинний байтовий код за допомогою компілятора javac. В результаті трансляції створюються файли з розширенням .class (Hello.class).

Зауваження. Для виконання компіляції і запуску програми можна створити командний файл (з розширенням .bat) такого змісту:

Використання середовища розробки IntellijIdea

Створення нового Java-проекту з ім'ям Hello (меню "File", пункт "New").

Компіляція вихідних текстів.

Створення конфігурації запуску аплета (Меню Run - Edit Configuration), закладка Applet

Використання jdk (java developer's kit)

Запуск аплету (меню Run). Відбувається запуск аплету за допомогою appletviewer.

Найпростіший аплет Hello

Оригінальний текст Java-файлу найпростішого аплету виглядає наступним чином:

public class Hello extends Applet

public void init ()

public void paint (Graphics g)

Файл HTML-документа з посиланням на аплет Hello повинен містити наступний код:

Тепер розглянемо, з яких обов'язкових елементів складається аплет. Клас Hello, визначений у цьому апплете, також є первинним класом, хоча він досить сильно відрізняється від первинних класів для простих додатків. Для звичайної Java-програми необхідно було визначити тільки один обов'язковий метод в первинному класі - метод main (). У первинному класі аплета необхідно визначити як мінімум два методи - initіpaint. Методinitвиполняет ініціалізацію аплету, а з допомогою методаpaintвиполняется отрисовка аплету. Інші методи визначаються в разі потреби створення деяких спеціальних ефектів.

Клас Hello визначається як public, а це значить, що він доступний для інших об'єктів. Крім того, явно встановлений суперклас клас Hello. Їм є клас Applet (java.applet.Applet). Клас Applet повинні розширювати все аплети, в тому числі і клас Hello. Покажеміерархію класів (або дерево спадкування) для аплетів:

Hello<- Applet <- Panel <- Container <- Component <- Object

Клас Hello успадковує дані і поведінку класу Applet. Будучи підкласом класу Applet, клас Hello може вважатися його більш спеціалізованим варіантом.

Переобумовленої метод init () не має параметрів, нічого не повертає і оголошується відкритим. Єдине, що робить в цьому методі аплет Hello - це змушує змінити розміри вікна аплету. Методresize () є методом класу Applet, тому можна використовувати його і інші методи цього класу.

Другим переобумовленої методом є paint (). який являє собою підпрограму, яка використовується для створення на екрані зображення. Подібно до методу init (), він оголошений відкритим і нічого не повертає. Але у нього є параметр, а саме - об'єкт классаGraphics. Методами цього класу можна користуватися для виведення графічної інформації в вікно аплета.

Розглянемо ще раз більш систематизовано основні відмінності між первинним класом аплету і звичайної Java-програми:

Жоден з методів в первинному класі аплету не є статичним. З цього можна зробити висновок, що цей клас повинен бути в якийсь момент явно реалізований (на відміну від первинного класу додатка). Але в тексті аплету Hello оператора реалізації класу немає. Звідси випливає, що оболонка часу виконання аплету, вбудована в WWW-броузер, сама реалізує первинний клас аплета.

Первинний клас аплета є розширенням класу Applet (або подклассом Applet). Клас Applet включає в себе ті функції, які повинен мати кожен аплет.

Якщо перевірити виконання аплету Hello, то видно, що обидва включених в первинний клас методу відпрацювали незважаючи на те, що код самого аплету не містив явних викликів цих методів. Це пояснюється тим, що також, як і оболонка часу виконання Java сама шукає і викликає метод main () в первинному класі програми, оболонка часу аплету самостійно викликає методи, що входять в підклас Hello класу Applet.

Для більш повного розуміння принципу функціонування аплетів звернемо особливу увагу на останній пункт. У звичайних додатках оболонка часу виконання викликає метод main (), який викликав інші методи і реалізовував алгоритм програми. На відміну від цього, коли оболонка часу виконання броузера запускає аплет, вона перш за все шукає і викликає метод init (). Метод init () виконує тільки службові дії і не відповідає за роботу всієї програми. Метод же paint () викликається самою системою завжди, коли вміст вікна потрібно оновити. Наприклад, якщо при роботі в Windows вікно броузера перекрити вікном іншого Windows-додатки, то після того, як вікно броузера знову відкриється, система відразу ж викличе метод paint (), щоб відновити вміст вікна.

За винятком того факту, що оболонка часу виконання броузера під час роботи аплету сама викликає методи, які є перевизначення методів стандартного класу Applet, первинний підклас аплету поводиться так само, як і первинні класи простих додатки. У первинному класі аплету також можна визначати нові методи (а не тільки перевизначати методи, визначені в стандартному класі Applet), оголошувати змінні і реалізовувати нові класи.