МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Програмування аплетів в Java. Обробка подій в Java.
Методичні вказівки
до виконання лабораторної роботи №9
з курсу “Об’єктно-орієнтоване програмування”
для студентів базового напрямку
6.0804 “Комп’ютерні науки”
ЗАТВЕРДЖЕНО
на засіданні кафедри “Системи автоматизованого проектування” Протокол № 1від 30.08.2010
ЛЬВІВ 2010 Мова програмування Java. Методичні вказівки до виконання лабораторної роботи №9 “Програмування аплетів в Java. Обробка подій в Java.” з курсу: “Об’єктно-орієнтоване програмування” для студентів базового напрямку 6.0804 “Комп’ютерні науки”.
Укладачі: Каркульовський В.І., доцент, к.т.н.
Керницький А.Б., ст.викл., др.інж.
Відповідальний за випуск:
Рецензенти:
1. МЕТА РОБОТИ
Одержати навики побудови алгоритмів лінійних обчислювальних процесів, навчитися складати алгоритми та програмувати процеси з розгалуженням, циклами, ітераційними циклами за допомогою мови Java. Одержати навички роботи із масивами.
2.ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ
2.1. ОПЕРАТОРИ МОВИ JAVA
14.1. Аплет
До сих пір ми створювали додатки (applications), працюючі самостійно (standalone) в JVM під управлінням графічної оболонки операційної системи. Ці додатки мали власне вікно верхнього рівня типу Frame, зареєстроване у віконному менеджері (window manager) графічної оболонки. Крім додатків, мова Java дозволяє створювати аплети (applets). Це програми, що працюють в середовищі іншої програми - браузера. Аплету не потрібне вікно верхнього рівня - їм служить вікно браузера. Вони не запускаються JVM — їх завантажує браузер, котрий сам запускає JVM для виконання аплету. Ці особливості відбиваються на написанні програми аплета.
З точки зору мови Java, аплет — це всяке розширення класу Applet, котрий, в свою чергу, розширяє клас Panel. Таким чином, аплет - це панель спеціального виду, контейнер для розміщення компонентів з додатковими властивостями і методами. Менеджером розміщення компонентів по замовчуванню, як і в класі Panel, служить FІowLayout. Класс Applet знаходиться в пакеті java.applet, в якому крім нього єсть тільки три інтерфейси, реалізовані в браузері. Треба відмітити, що не всі браузери реалізують ці інтерфейси повністю.
Оскільки JVM не запускає аплет, відпадає необхідність в методi main(), його немає в аплетах. В аплетах рідко зустрічається конструктор. Справа в тому, що при запуску першого створюється його контекст. Під час виконання конструктора контекст ще не сформований, тому не всі початкові значення вдається визначити в конструкторі. Початкові дії, зазвичай виконувані в конструкторі і методі main(), в аплеті записуються в метод init() класу Applet. Цей метод автоматачно запускається виконуючою системою Java браузера зразу ж післе завантаження аплета. Ось як він виглядає у вихідному коді класу Applet:
public void init(){}
Не густо! Метод init() не має аргументів, не повертає значення і повинен перевизначатися в кожному аплеті — підкласі класу Applet. Зворотні дії — завершення роботи, звільнення ресурсів — записуються при необхідності в метод destroy(), також виконуваний автоматично при вивантаженні аплету. В класі Applet єсть пуста реалізація цього методу.
Крім методів init() і destroy() в класі Applet присутні ще два пустих методи, виконувані автоматично. Браузер повинен звертатися до методу start() при кожній появі аплету на екрані і звертатися до методу stop(), коли аплет зникаєт з eкрана. В методі stop() можна визначити дії, зупиняючі роботу аплета, в методі start() — відновлюючі її. Треба зразу ж відмітити, що не всі браузери звертаються до цих методів як повинно. Так, перший із розглянутих нижче аплетів HelloWorld.html мені не вдалося запустити браузером Internet Explorer, прийшлося скористатися власним Java браузером appletviewer, як пояснено далі.
Роботу указаних методів можна пояснити простим житійським прикладом. Приїхавши весною на дачу, ви прокладаєте водопровідні труби, прикручуєте крани, протягуєте шла...