Реферат Аплети

Факультет "Інформатика і системи управління"

Методичні вказівки до лабораторної роботі

за курсом ">Распределенние системи обробки інформації"

>Аплети

Москва 2004 р.


>Оглавление.

Мета роботи

Завдання для домашньої підготовки

Завдання до лабораторної роботі

Зміст звіту

Контрольні питання.

Література.

Додаток.Аплети.

Передача параметрів

Параметритега <>applet>

Дані про оточенняаплета

Захист відаплета        

 


Мета роботи

1. Познайомитися з бібліотекоюjava.applet і класомjava.applet.Applet

2.Научится обробляти події уаплетах.

3. Освоїти роботи з управляючими компонентами і менеджерами розміщення.

4. Застосувати отримані знання практично

Завдання для домашньої підготовки

Ознайомитися з матеріалом, наданих додатках до даних методичним вказівкам. Ознайомитися з текстом завдання до лабораторної роботи і написати програму.

Завдання до лабораторної роботі

>o За підсумками віконного докладання, створеного лабораторної роботі №5 «Програмування графіки та обробка подій», розробитиаплет – калькулятор

 

Зміст звіту

Звіт мусить мати:

1. Постановку завдання, розв'язуваної налагодженої програмою.

2. Керівництво користувача налагодженої програми, що містить опис інтерфейсів всіх функцій програми.

3.Листинг програми з необхідними коментарями.

Контрольні питання.

1. Що стосується, якщо програма –аплет складається з кількох класів та після компіляціїсгенерировано кілька файлів *.>class, і в середині контейнера <>applet></applet> html – файла це потрібно вказати?

2. Скільки класів у пакетіjava.applet?

3. Як зміниться робота програми, якщо всередині блокуswitch(){} не записувати операториbreak.

4.Модифицируйтеаплет те щоб коефіцієнт, який збільшується результат, був випадковим числом (методrandom() класуjava.lang.Math)

5. Додайте текстовим полях слухачів і оброблювачі подійActionEvent().Обработчики також має викликати метод виведення результату.

Література.

Офіційні джерела:

1. Кен Арнольд, Джеймс Гослінг, Девід Холмс. Мова програмування Java™.

2. Офіційний сайт Java —java.sun.com/ (є розділ російською з підручником).

3. Java™ 2 SDK, StandardEditionDocumentation —

4. Джеймс Гослінг, Білл Джой, Гай Стіл.Спецификация мови Java (The JavaLanguageSpecification. Переклад російською мовою —uni-vologda.ac/java/jls/index.html

5. Офіційний сайт проектуEclipse —eclipse.org/.

Інше:

1. ДмитроРамодин. Починаємо програмувати мовою Java.

2. Микола Смирнов. Java 2: Навчальний посібник.

3.Картузов А. У. Програмування мовою Java.

4.Вязовик Н.А. Програмування на Java.

5. ОлексійЛитвинюк. Введення ЄІАС у інтегровану середу розробкиEclipse.


Додаток.Аплети.

>Аплети  — це програми, працюють у середовищі інший програми — браузери.Аплети не потребують вікні верхнього рівня — їм служить вікно браузери. Не запускаютьсяJVM — їх завантажує браузер, яка сама запускаєJVM до виконанняаплета. Ці особливості б'ють по написанні програми –аплета.

З погляду мови Java,аплет — це всяке розширення класуApplet, який, своєю чергою, розширює класpanel. Отже,аплет — це панель спеціального виду, контейнер розміщувати компонентів з додатковими властивостями і методами.Менеджером розміщення компонентів за умовчанням, як й у класіPanel, служитьFlowLayout. КласApplet перебуває у пакетіjava.applet, у якому окрім неї є лише три інтерфейсу, реалізовані браузері. Слід зазначити, що не браузери реалізують ці інтерфейси повністю.

ОскількиJVM не запускаєаплет, зайвими в методіmain(), його вже середаплетах.

Уаплетах рідко зустрічається конструктор. Річ у тім, що з запуску першого створюється його контекст. Під час виконання конструктора контекст ще сформований, тому все початкові значення вдається накинути у конструкторі.

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

publicvoidinit(){}

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

Крім методівinit() іdestroy() у п'ятому класіApplet присутні решта 2 порожніх методу, виконуються автоматично.Браузер повинен звертатися до методуstart() при кожному появуаплета на екрані і звертатися до методу stop(), колиаплет йде з екрана. У методі stop() можна визначити дії, які пригнічують роботуаплета, в методіstart() —возобновляющие її. Треба одразу ж можна зауважити, що не браузери звертаються до цих методам як має. Роботу зазначених методів можна пояснити простим життєвим прикладом.

Приїхавши навесні на свою дачну ділянку, ви прокладаєте водогінні труби,прикручиваете крани, протягаєте шланги — виконуєте методinit() для своєї зрошувальної системи. Після цього, приходячи на ділянку, включаєте крани — запускаєте методstart(), а йдучи, виключаєте їх — виконуєте метод stop(). Нарешті, восени ви розбираєте зрошувальну систему,отвинчиваете крани,просушиваете і укладаєте водогінні труби — виконуєте методdestroy().

Всі ці методи ваплете необов'язкові. У прикладі 1 записано найпростішийаплет, виконує програмуHelloWorld.

Приклад 1.аплетHelloWorld

>importjava.awt.*; 

>importjava.applet.*;

publicclassHelloWorldextendsApplet{ 

publicvoidpaint(Graphics g){

>g.drawstring("Hello, XXIcentury World!", 10, 30); 

}

}

Ця програма записується в файлHelloWorld.java і компілюється як звичайне додаток: 

>Компилятор створює файлHelloWorld.class, але скористатися щодо його виконання інтерпретаторомjava тепер можна — немає методуmain(). Замість інтерпретації треба дати вказівку браузеру для запускуаплета.

Вказівка браузеру на запускаплета дається втеге <>applet>. У ньому обов'язково задаються:

 ім'я файла з класомаплета параметромcode;

 ширинаwidth і висотаheight панеліаплета впикселах. Повністю текст HTML до нашогоаплета приведено у прикладі 2.

Приклад 2. >Файл HTML для завантаженняаплетаHelloWorld

<html>

<>head><title>Applet</title></head> <>body>

Нижче виконуєтьсяаплет.<br>

<>appletcode = ">HelloWorld.class"width = "200"height = "100"> 

</>applet> 

</>body> 

</html>

Цей текст заноситься в файл з розширенням html чиhtm, наприклад,HelloWorld.html. Ім'я файла довільно, неможливо пов'язані заплетом чи класомаплета.

Обидва файла —HelloWorld.html іHelloWorld.class — вкладаються у один каталог на сервері, і файлHelloWorld.html завантажується в браузер, котрі можуть перебувати у місці серверу.Браузер, переглядаючиHTML-файл, виконає ярлик <>applet> і завантажитьаплет. Після завантаженняаплет з'явиться з вікна браузери, як показано малюнку 1.

 

Малюнок 1. >АплетHelloWorld з вікна Internet Explorer

У цьому вся простому прикладі можна побачити ще особливостіаплетов. По-перше, розміраплета задається над ньому, атеге <>applet>. Це зручне, можна змінювати розміраплета, не компілюючи його наново. Можна організуватиаплет невидимим, зробивши її площею один піксел. З іншого боку, розміраплета дозволяється поставити у відсотках стосовно розміру вікна браузери, наприклад,

<>appletcode = ">HelloWorld.class"width = "100%"height = "100%">

По-друге, очевидно на рис. 1, уаплета сіре тло. Такий фон був у перших браузерах, іаплет не виділявся з тексту з вікна браузери. Тепер у браузерах прийнято білий фон, може бути встановити звичайним для компонентів методомsetBackground(Color.white), звернувшись у його методіinit ().

До складуJDK будь-який версії входить програмаappietviewer. Це найпростіший браузер, готовий до запускуаплетов з метою налагодження.

На малюнку 2appletviewer показуєаплетHelloWorld.

Малюнок 2. >АплетHelloWorld з вікна програмиappletviewer

Зауваження по налагодженні

>Браузери поміщають завантаженіаплети на свій кеш, тому після щиглика кнопкою миші по кнопціRefresh чиReload запускається стара копіяаплета з кешу Для завантаження нової копії треба при щиглику по кнопціRefresh в IE (Internet Explorer) тримати натиснутій клавішу <>Ctrl>, а при щиглику по кнопціReload вNC (NetscapeCommunicator) — клавішу <>Shift> Часом і це допомагає. Не рятує навіть перезапуск браузери. Тоді слід очистити обидваКЭШа – і дисковий, і кеш у пам'яті. У IE це виконується кнопкоюDeleteFiles з вікна, викликуваному вибором командиTools | InternetOptions. BNC необхідно відкрити вікноCache командоюEdit |Preferences | Advanced.

Після запуску докладання інтерпретаторомjava з командної рядки у неї передати параметри як аргументу методуmain (>string []args). Уаплети також передаються параметри, але іншим шляхом.

 

Передача параметрів

Передача параметрів ваплет проводиться за допомогоютегов <>param>, наявних між який відкриваєтегом <>applet> і що закриваєтегом </>applet> вHTML-файле. Утегах <>param> вказується назва параметраname та її значенняvalue.

Уаплете прийому кожного параметра треба скористатися методомgetParameter (>Stringname) класуApplet,Возвращающим рядок типуString. Як аргумент цього задається значення параметраname як рядки, до чого тут не різниться регістр літер, а метод повертає, значення параметраvalue також у вигляді рядки.

Сподіваючись те що, що параметри будуть задано вHTML-файле, все-таки привласніть початкові значення змінним ваплете.

Зауваження по налагодженні

ОператориSystem.out.println(), зазвичай записувані ваплет для налагодження, виводять вказаних у них аргументи на спеціальне вікно браузери JavaConsole. Спочатку треба встановити можливість показу цього вікна. У Internet Explorer це установкою прапорця JavaConsoleenabled вибором командиTools | InternetOptions | Advanced. Після перезапуску IE в менюView з'являється команда JavaConsole.

 

Параметритега <>applet>

 

Обов'язкові параметри:

·code —URL-адрес файла з класомаплета чи архівного файла;

·width іheight — завширшки висотааплета впикселах. 

>Необязательние параметри:

·codebase —URL-адрес каталогу, де розміщений файл класуаплета. Якщо це параметр відсутня, браузер шукатиме файл у тому каталозі, де міститься відповіднийHTML-файл;

·archive — файли всіх класів, складовихаплет, може бути упакованіархиваторомZIP чи спеціальнимархиваторомJAR до одного чи кілька архівних файлів.Параметр задаєURL-адреса цих файлів через кому;

·align — вирівнюванняаплета з вікна браузери. Цей параметр має з наступних значень:ABSBOTTOM,ABSMIDDLE,BASELINE,BOTTOM,CENTER,LEFT,MIDDLE,RIGHT,TEXTTOP,TOP;

·hspace іvspace — горизонтальні і вертикальні поля, що відокремлюютьаплет від інших об'єктів з вікна браузери впикселах;

·download — задає порядок завантаження зображеньаплетом. Імена зображень перераховуються через кому гаразд завантаження;

·name — ім'яаплета.Параметр потрібен, якщо завантажуються кількааплетов з значеннямиcode іcodebase;

·style — інформацію про стиліCSS (>CascadingStyleSheet);title — текст, відображуваний у виконанняаплета;

·alt — текст, виведений замістьаплета, якщо браузер неспроможна завантажити його;

·mayscript — має значення. Цього слова зазначає, щоаплет звертатиметься до текстуJavaScript.

Міжтегами <>applet> і </>applet> написати текст, який виведений, якщо браузер зможе зрозуміти ярличок <>applet>. Ось повний приклад:

<>appletname = ">AnApplet"code = ">AnApplet.class"

>archive = ">anapplet.zip,myclasses.zip"

>codebase = "

>width = "300"height = "200"align = ">TOP"

>vspace = "5"hspace = "5"mayscript

>alt = ">Ifyouhave aJava-enabledbrowser,

>youwouldseeanapplethere."> 

<>hr>Ifyourbrowserrecognized theapplettag,

>youwouldseeanapplethere.<hr> 

</>applet>


Обов'язковоупаковивайте все класиаплета вzip- іjar-архиви і вказуйте в параметріarchive вHTML-файле. Це значно прискорить завантаженняаплета.

Слід голосно-преголосно сказати, що, починаючи з версії HTML 4.0, є ознака <>object>, готовий до завантаження іаплетов, та, наприклад,ActiveX. З іншого боку, деякі браузери може використати для завантаженняаплетов етикетка <>embed>.

 

Дані про оточенняаплета

МетодgetCodeBase () повертаєURL-адрес каталогу, у якій лежить файл класуаплета.

МетодgetDocumentBase () повертаєURL-адрес каталогу, у якій лежитьHTML-файл, що викликаваплет.

>Браузер реалізує інтерфейсAppletContext, що у пакетіjava.applet.Аплет може мати простий посилання цей інтерфейс методомgetAppletContext().

З допомогою методівgetApplet (>Stringname) іgetApplets() інтерфейсуAppletСontext можна отримати роботу посилання зазначений аргументомnameаплет чи всеаплети, завантажені в браузер.

МетодshowDocument(URLaddress) завантажує в браузерHTML-файл з адресиaddress.

МетодshowDocument (>URLaddress,Stringtarget) завантажує файл у фрейм, зазначений другим аргументомtarget. Цей аргумент може приймати такі значення:

· _>seif — те вікно і хоча б фрейм, у якому працюєаплет; 

· _>parent — батьківський фреймаплета; 

· _>top — фрейм верхнього рівня вікнааплета; 

· _>biank — нове вікно верхнього рівня;

·name — фрейм чи вікно безпосередньо з ім'ямname, якщо вона існує, він створено.

 

Захист відаплета

>Браузер може взагалі відмовитися від завантаженняаплетов. У NetscapeCommunicator це з допомогою прапорцяEnable Java з вікна, викликуваному командоюEdit |Preferences | Advanced, в Internet Explorer — з вікна після вибору командиTools | InternetOptions | Security.

Якщо браузер завантажуєаплет, то створює йому обмеження, так звану "ящик для піску" (>sandbox), у якій граєаплет, але вийти з якої може. Кожен браузер створює свої обмеження, але полягають у цьому, щоаплет:

· неспроможна звертатися до файловою системі машини, де його виконується, навіть читання файлів чи перегляду каталогів;

· може зв'язатися через мережу з тим сайтом, із якої він був завантажений;

· неспроможна прочитати системні властивості;

· неспроможна друкувати на принтері, підключеному до того що комп'ютера, де вона виконується;

· неспроможна скористатися буфером обміну (>clipboard); неспроможна запустити додаток методомехес();

· неспроможна використовувати "рідні" методи чи завантажити бібліотеку методомload();

· неспроможна зупинитиJVM методом exit();

· неспроможна створювати класи в пакетахjava.*, а класи пакетівsun.* неспроможна навіть завантажувати.

>Браузери можуть посилити чи послабити ці обмеження, наприклад, дозволити локальнимаплетам,загруженним з тією ж машини, де їх виконуються, доступом до файлової системі. Найменші обмеження мають довірені (>trusted)аплети, забезпечені електронної підписом з допомогою класів з пакетівjava.security.*.

Під час створення докладання,загружающегоаплети, необхідно забезпечити кошти перевіркиаплета і обмеження. Їх надає класSecurityManager. Примірник цього або його спадкоємця встановлюється вJVM під час запуску віртуальної машини статичним методомsetSecurityManager(SecurityManagersm) класу System. Звичайні докладання що неспроможні використовувати даний метод.

Кожен браузер розширює класSecurityManager по-своєму, встановлюючи ті чи інші обмеження. Єдиний примірник цього створюється під час запускуJVM в браузері не може бути змінено.


Схожі реферати:

Навігація