Компіляція вихідного коду Java в машинний байтовий код за допомогою компілятора javac. В результаті трансляції створюються файли з розширенням .class (Hello.class).
Зауваження. Для виконання компіляції і запуску програми можна створити командний файл (з розширенням .bat) такого змісту:
Використання середовища розробки IntellijIdea
Створення нового Java-проекту з ім'ям Hello (меню "File", пункт "New").
Компіляція вихідних текстів.
Створення конфігурації запуску аплета (Меню Run - Edit Configuration), закладка Applet
Запуск аплету (меню 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), оголошувати змінні і реалізовувати нові класи.