Содержание

Слайд 2

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Зміст Основи аплетів Клас Applet Методи,

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Зміст

Основи аплетів
Клас Applet
Методи, визначені в класі Applet
Архітектура аплета
Кістякова

схема аплета
Ініціалізація і завершення аплета
Метод init ()
Метод start ()
Метод paint ()
Метод stop ()
Метод destroy ()
Перевизначення методу update()
Прості методи відображення аплетів
Константи класу Color
Вимога перемальовування
Тег
Пересилання параметрів в аплети
Вивід на консоль
Слайд 3

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Основи аплетів Всі аплети є підкласами

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Основи аплетів

Всі аплети є підкласами Applet. Таким чином,

вони повинні імпортувати java.applet, А також java.awt.
Так як всі аплети виконуються у вікні, необхідно включити підтримку для цього вікна.
Аплети не виконуються Java-Інтерпретатором часу виконання, які працюють в консольному режимі.
Вони виконуються або Web-Браузером або програмою перегляду аплету.
Виконання аплету не починається з методу main ().
Деякі з них навіть містять метод main (), Проте виконання апплета починається і управляється зовсім іншим механізмом, який вимагає хоча б короткого пояснення.
Висновок у вікно аплету не виконується методом system.out.printin ().
Скоріше, він обробляється різними AWT-Методами, такими як drawstring (),
Який виводить рядок у вказану точку екрану.
Введення також обробляється інакше, ніж в додатку.
Слайд 4

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Як тільки аплет вікомпільован, він включається

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Як тільки аплет вікомпільован, він включається в HTML-Файл,

використовуючи тег .
Аплет буде виконуватися Java-Сумісним браузером, коли той зустріне в HTML-Файлі вказаний тег.
Для більш зручного перегляду та перевірки аплету просто включите в початок файлу вихідного коду Java-Коментар, який містить тег .
Цим способом ваш код документується разом з інструкціями HTML, необхідними аплету, і ви можете перевірити відкомпільований аплет, запустивши програму перегляду з вашим файлом вихідного коду в якості параметра.
Приклад такого коментаря:
/ *
applet code = "MyApplet" width = 200 height = 60>

* /
Цей коментар містить тег , який виконає аплет з ім'ям MyAppiet у вікні з розмірами 200x60 пікселів.

Основи аплетів

Слайд 5

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Applet забезпечує всю необхідну підтримку для

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Applet забезпечує всю необхідну підтримку для виконання аплетів,

таку як запуск і зупинка.
Він також реалізує методи, які завантажують і показують зображення, і методи, які завантажують і програють аудіо-кліпи.
Applet розширює AWT-Клас Panel.
Крім того, Panel розширює Container, який, в свою чергу,
розширює Component.
Ці класи забезпечують підтримку графічного інтерфейсу Java при роботі з вікнами.
Таким чином, Applet забезпечує всю необхідну підтримку для роботи з вікнами.

Клас Applet

Слайд 6

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Методи, визначені в класі Applet

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Методи, визначені в класі Applet

Слайд 7

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Методи, визначені в класі Applet

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Методи, визначені в класі Applet

Слайд 8

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Аплет - програма, що працює з

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Аплет - програма, що працює з вікном.
По-перше,

аплети управляються подіями. Аплет походить на набір програм обробки переривань. Процес виконується так: аплет очікує виникнення деякої події. AWT повідомляє аплет про подію викликом обробника події, який був забезпечений аплетом. Як тільки це трапляється, аплет повинен виконати відповідну дію і потім швидко повернути управління AWT. Це критичний момент.
Здебільшого ваш аплет не повинен входити в режим
роботи, в якому він підтримує управління тривалий період.
У тих ситуаціях, коли аплет змушений виконувати повторювану задачу сам по собі (наприклад, відображаючи прокручується в його вікні повідомлення), ви повинні запустити додатковий потік виконання.

Архітектура аплета

Слайд 9

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua По-друге, користувач ініціалізує взаємодію з аплетом.

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
По-друге, користувач ініціалізує взаємодію з аплетом. Користувач взаємодіє

з аплетом, як і коли він цього захоче. Ці взаємодії надсилаються аплету як події, на які аплет повинен відповісти. Наприклад, коли користувач клацає мишею всередині вікна апплета, генерується подія "клацання мишею". Якщо користувач натискає клавішу в той час, коли вікно аплета має фокус вводу, генерується подія "натискання клавіші". Коли користувач взаємодіє з одним із цих елементів управління, також генерується подія.

Архітектура аплета

Слайд 10

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Кістякова схема аплета Всі аплети, крім

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Кістякова схема аплета
Всі аплети, крім найбільш тривіальних, перевизначають

набір методів, що забезпечують основний механізм, за допомогою якого браузер або програма перегляду взаємодіє з аплетом і управляє його виконанням.
Чотири таких методу - init(), start(), stop() І destroy () - Визначені в Applet.
П'ятий, paint(), Визначений AWT-Класом Сomponent.
Для всіх цих методів забезпечені також і реалізації за замовчуванням.
Аплетам не потрібно перевизначати ті методи, які вони не використовують.
Слайд 11

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Ініціалізація і завершення аплета Важливо зрозуміти

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Ініціалізація і завершення аплета
Важливо зрозуміти порядок, в якому

викликаються різні методи, показані в скелетної схемою.
Коли аплет починає виконуватися, AWT викликає методи в такій послідовності:
init()
start ()
paint ()
При завершенні аплету має місце наступна послідовність викликів:
stop()
destroy ()
Розглянемо докладніше ці методи.
Слайд 12

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Метод init () Метод init ()

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Метод init ()
Метод init () - Перший метод,

який вимагає виклику. В ньому ви повинні ініціалізувати змінні. Викликається він тільки одного разу протягом часу виконання аплету.
Слайд 13

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Метод start () Метод start ()

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Метод start ()

Метод start () слід після init

().
Він також викликається, щоб перезапустити аплет після його зупинки.
У той час як init () Викликається одного разу (в перший момент, коли аплет завантажується), start () запускається кожного разу, коли HTML-Документ аплету відображається на екрані.
Так, якщо користувач залишає Web-Сторінку і повертається назад, аплет відновлює виконання в start ().
Слайд 14

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Метод paint () Метод paint ()

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Метод paint ()

Метод paint () Викликається щоразу, коли

висновок аплету повинен бути перемальований.
Це ситуація може виникнути з кількох причин.
Наприклад, вікно, в якому аплет виконується, може бути перекрито зверху іншим вікном, яке потім закривається, або вікно аплета може бути згорнуто і потім відновлено.
Метод paint () викликається також, коли аплет починає виконання.
Таким чином, незалежно від причини paint () викликається кожного разу, коли аплет повинен перемальовувати свій висновок.
Метод paint () Має один параметр типу Graphics. Він повинен містити графічний контекст, що описує графічну середовище, в якому виконується аплет.
Даний контекст використовується щоразу, коли потрібно висновок в аплет.
Слайд 15

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Метод stop () Метод stop ()

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Метод stop ()

Метод stop () Викликається, якщо Web-Браузер

залишає HTML-Документ, що містить аплет, при переході до іншої сторінки.
Коли викликається stop (), Аплет, ймовірно, продовжує виконуватися.
Слід використовувати stop () для припинення потоків, які не потребують виконання, якщо аплет невидимий.
Їх можна перезапустити викликаючи start (), Коли користувач повертається до сторінки.
Слайд 16

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Метод destroy () Метод destroy ()

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Метод destroy ()

Метод destroy () Викликається, коли середу

вирішує, що аплет повинен бути повністю видалений з пам'яті.
У цей момент слід звільнити будь-які ресурси, які аплет може використовувати.
Метод stop () завжди викликається перед destroy ().
Слайд 17

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Перевизначення методу update() У деяких ситуаціях

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Перевизначення методу update()

У деяких ситуаціях аплет може перевизначити

метод update (), Визначений у AWT.
Даний метод викликається, коли потрібно перемальовування частині вікна аплету.
Задана за замовчуванням версія update () спочатку заповнює аплет заданим за умовчанням кольором фону і потім викликає paint ().
Якщо ви заповнюєте фон, використовуючи інший колір в paint (), То користувач буде бачити спалах заданого за замовчуванням фону кожного разу, коли викликається update (), Тобто всякий раз, коли вікно перемальовується.
Один із способів обійти зазначену проблему полягає в перевизначенні методу update () так, щоб він виконував всі необхідні дії дисплея.
Тоді, викликаючи paint (), Просто запускають update ().
Слайд 18

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Прості методи відображення аплетів Аплети відображаються

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Прості методи відображення аплетів

Аплети відображаються у вікні, і

вони використовують AWT для організації введення і виведення.
Щоб вивести рядок у вікно аплета, використовують метод drawstring (), Який є членом класу Graphics.
Як правило, він викликається всередині або update о, або paint о. Він має таку загальну форму:
void drawstring (String message, int x, int y)
Тут message - Рядок, яку потрібно вивести, починаючи з позиції х, у.
Слайд 19

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Прості методи відображення аплетів Метод drawstring()

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Прості методи відображення аплетів

Метод drawstring() Не розпізнає символи

newline. Якщо потрібно почати порцію тексту з нового рядка, потрібно зробити це вручну, визначаючи точні (х, у) координати, з яких ви хочете почати розміщення рядка.
Для установки кольору фону у вікні аплету використовуйте метод setBackground(), А для кольору переднього плану (колір, який застосовується для відображення тексту - setForeground (). Обидва методи визначені в
Component і мають наступні загальні форми:
void setBackground (Color newColor)
void setForeground (Color newColor)
Тут newColor - Призначає новий колір.
Слайд 20

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Константи класу Color Color.black Color.magenta Color.blue

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Константи класу Color

Color.black
Color.magenta
Color.blue
Color.orange

Color.cyan
Color.pink
Color.darkGray

Color.red
Color.gray
Color.white
Color.green
Color.yellow
Color.lightGray

Слайд 21

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Вимога перемальовування Існує загальне правило: аплет

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Вимога перемальовування

Існує загальне правило: аплет організовує висновок в

своє вікно тільки тоді, коли AWT викликає його методи update () або paint () .
Як сам аплет може викликати модифікацію свого вікна, коли його інформація змінюється? Наприклад, якщо аплет відображає рухомий заголовок, який механізм використовується для відновлення вікна кожного разу, коли цей заголовок прокручується?
Одне з фундаментальних архітектурних обмежень, накладених на аплет: він повинен швидко повернути управління в виконуючу систему AWT. Він не може створювати цикл всередині paint(), Який, наприклад, повторно прокручує заголовок. Це завадило б передачу управління назад у AWT. При цьому обмеження може здатися, що виведення у вікно аплета буде утруднений.
Слайд 22

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Вимога перемальовування Всякий раз, коли аплет

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Вимога перемальовування

Всякий раз, коли аплет повинен оновити інформацію,

відображену в його вікні, він просто викликає repaint().
Метод repaint () Визначений в пакеті AWT. Він змушує виконуючу систему AWT викликати метод update() Вашого аплету, який в його реалізації за замовчуванням викликає paint ().
Таким чином, в тій частині аплету, де потрібно відобразити щось у вікні, просто збережіть висновок і потім викличте repaint (). Тоді AWT виконає виклик paint (), Який може відображати збережену інформацію. Наприклад, якщо частина аплету повинна вивести рядок, вона може зберегти цей рядок в string-Змінної і потім викликати repaint (). Всередині paint () Ви будете виводити рядок, використовуючи метод drawstring ().
Слайд 23

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Вимога перемальовування Найпростіша версія repaint ():

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Вимога перемальовування

Найпростіша версія repaint ():
void repaint ()
Наступна

версія визначає область, яка буде перемальована:
void repaint (int left, int top, int width, int height)
Тут координати верхнього лівого кута області визначені параметрами left і top,а ширина і висота області пересилається в width іheight.Ці вимірювання визначені в пікселах.
void repaint (long maxDelay)
void repaint (long maxDelay, int x, int y, int width, int height)
Тут maxDelay визначає максимальне число мілісекунд, на яке затримується виклик update (). Якщо цей час закінчиться раніше, ніж update () може бути викликаний, він зовсім не викликається. У методу немає ніякого значення, що повертається або викинутого винятку, так що ви повинні бути уважними.
Слайд 24

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Тег Далі показаний синтаксис стандартного тега

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Тег

Далі показаний синтаксис стандартного тега . Параметри

у квадратних дужках - не обов'язкові.

[CODEBASE = codebaseURZ]
CODE = appletFile
[ALT = altemateText]
[NAME = appletlnstanceName]
WIDTH = pixels HEIGHT = pixels
[ALIGN = alignment]
[VSPACE = pixels] [HSPACE = pixels]>
[]
[]
[HTML Displayed, in the absence of Java]
Слайд 25

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Тег CODEBASE.Визначає базовий URL-Адресу коду аплету.

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Тег

CODEBASE.Визначає базовий URL-Адресу коду аплету. Базовий URL

- Це каталог, в якому буде розшукуватиметься виконуваний файл аплета (ім'я цього файлу вказується параметром CODE). Якщо атрибут CODEBASE не визначений, то за умовчанням використовується базовий URL (Т. е. каталог) поточного HTML-Документа.
CODE. Обов'язковий параметр, який задає ім'я файлу, що містить відкомпільований файл (з розширенням.class) Вашого аплету. Цей файл відноситься до базового URL коду аплету, що є каталогом, в якому знаходиться HTML-Файл, або каталогом, зазначеним у параметрі CODEBASE (Якщо він використовується).
Слайд 26

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Тег ALT. Необов'язковий параметр, який використовується

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Тег

ALT. Необов'язковий параметр, який використовується для вказівки

короткого текстового повідомлення, яке повинно бути відображено, якщо браузер розуміє тег , Але не може в поточний момент виконувати Java-Аплети. (Ця ситуація відрізняється від того випадку, коли для браузерів, не підтримують аплети, ви передбачаєте альтернативний HTML-Документ.)
NAME. Необов'язковий параметр, який використовується для визначення імені примірника аплету. Аплети повинні бути якимось чином названі для забезпечення пошуку і зв'язку з ними інших аплетів по імені. Для того щоб отримати аплет по імені, використовуйте метод getApplet(), Що визначений в інтерфейсі Appletcontext.
Слайд 27

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Тег WIDTH і HEIGHT - Це

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Тег
WIDTH і HEIGHT - Це обов'язкові параметри,
які задають розмір області показу аплету (в пікселах).
ALIGN.Необов'язковий параметр, який визначає вирівнювання аплету. Даний параметр трактується так само, як HTML-Тег З наступними можливими значеннями: left,right,top,bottom,middle,baseline, texttop, absmiddle і absbottom.
Слайд 28

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Тег VSPACE і HSPACE. Ці параметри

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Тег

VSPACE і HSPACE. Ці параметри необов'язкові. VSPACE

визначає порожній інтервал (в пікселах) вище і нижче області показу аплету. HSPACE задає порожній інтервал (в пікселах) на кожній стороні області показу аплету. Вони трактуються так само, як атрибути VSPACE іHSPACE тега .
Тег (З параметрами NAME= іVALUE=). Вкладений тег Дозволяє вказувати на HTML-Сторінці параметри, специфічні для даного аплету. Аплет отримує доступ до цих параметрів за допомогою методу getParameter ().
Слайд 29

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Пересилання параметрів в аплети Тег Дозволяє

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua

Пересилання параметрів в аплети

Тег Дозволяє передавати параметри
включаючему аплету.
Для отримання цих параметрів слід використовувати метод getParameter.
Він повертає значення вказаного параметра в формі string-Об'єкта.
Таким чином, для числових і булевих значень потрібно буде перетворити їх рядкові подання у внутрішні формати.
Слайд 30

ХНУРЕ, Кафедра Інформатики e-mail: informatika@kture.kharkov.ua Вивід на консоль Хоча висновок у

ХНУРЕ, Кафедра Інформатики

e-mail: informatika@kture.kharkov.ua
Вивід на консоль
Хоча висновок у вікно аплета повинен

бути організований через AWT-Методи типу drawstring (), Все ще можна використовувати і консольний висновок, особливо для цілей налагодження.
Коли викликається метод, такий як System.out.printin (), Висновок не надсилається у вікно аплета.
Замість цього він з'являється або в консольному сеансі, де ви запустили програму перегляду аплету, або в консолі Java, Яка доступна в деяких браузерах.
Використання консольного виводу рекомендується тільки для цілей налагодження, тому що він порушує основний принцип проектування додатків - використання графічного інтерфейсу.