Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vidpovidi_OOP.doc
Скачиваний:
21
Добавлен:
23.02.2016
Размер:
281.6 Кб
Скачать

41.Поняття Java-аплета

Аплети – це маленькі програми, які працюють в межах браузера.

Код аплета передається по Intenet-мережі. Браузери Netscape Navigator, Microsoft Internet Explorer підтримують роботу аплетів. Для цього в кожному з них вбудована віртуальна машина Java, що дозволяє виконувати аплет.

В цілях безпеки для аплетів встановлені обмеження: аплети не можуть ні читати ні писати на локальний диск. Аплети можуть передавати інформацію тільки на ту адресу. звідки завантажений. Вікно аплета спеціальним чином виділяється, щоб користувач міг зрозуміти, що працює з аплетом.

Будь-яка програма – додаток (аpplication) з віконним інтерфейсом може працювати як аплет і як звичайна програма.

Створення аплетів

Написання аплетів базується на класі JApplet пакету javax.swing. Цей клас має багато свої методів, а також ті, що успадковані від класу Applet. (Клас Apple, в свою чергу, створений як клас-нащадок класу Panel).

Для того, що виконати аплет, потрібно

1) скомпілювати вихідні файли та файли класів

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

Java-файл MyProject.java має, наприклад, такий код:

import javax.swing.*;

public class MyProject extends JApplet

{

public void init()

{

ProjectPanel panel = new ProjectPanel();

add(panel);

}

}

HTML-файл MyProject.html має, наприклад, такий вигляд:

<html>

<head>

<title>MyProject</title>

</head>

<body>

<p> текст</p>

<applet code = “MyProject.class” width=’300” height = “100”>

</applet>

<body>

</html>

Для побудови аплета потрібно створити клас-нащадок класу JApplet, і визначити в ньому ряд методів класу Applet. В класі JApplet ці методи реалізовані як порожні (нічого не роблять). Коли аплет працює в межах браузера він викликає ці методи у визначених ситуаціях. Якщо визначити власні методи, то браузер викличе їх, а не методи класу Applet.

Розглянемо ці методи:

public void init() - Викликається браузером зразу після завантаження аплета перед першим викликом метода start().

public void start () - Викликається браузером при кожному відвідуванні даної сторінки. Мається на увазі, що можна завантажити дану сторінку, потім завантажити іншу, а потім повернутись до даної. Використовується зазвичай в комбінації з методом stop() у тих випадках, коли потрібно повторити завантаження аплета. наприклад, для цілей анімації.

public void stop () - Викликається браузером при деактивізації даної сторінки (коли коритсувач закриває web-сторінку). Якщо аплет не завантажує анімацію чи відеофільми, метод можна не перевизначати.

public void destroy () -Викликається браузером перед вигрузкою даної сторінки.

У більшості випладків для створення аплета достатньо перевизначити метод init() і реалізувати в ньому формування екрану. При цьому вся функціональність аплета забезпечується слухачами полів, кнопок та інших активних візуальних компонентів.

Зауваження: якщо Ви переробляєте програму-додаток в аплет, то потрібно прослідкувати, щоб у програмі-додатку

‒ не було виклику методу setSize() (оскільки розміри вікна встановлює браузер за параметрами, указанами в HTML-файлі);

‒ не було виклику методу setDefaultCloseOperation() (оскільки закрити аплет не можливо, він припиняє свою роботу разом з браузером);

‒ не було виклику методу setTitle() (заголовок присвоюється HTML-файлом)

‒ не було виклику методу setVisible(true) (оскільки аплет відображається на екрані автоматично)

Додаток на web-сторінці може завантажуватись також за допомогою кнопки, розташованої на сторінці. Тоді програма матиме вигляд:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MyProject extends JApplet

{

public void init()

{

final JFrame frame = new JFrame();

frame.setTitle(“MyProject”);

frame.setSize(200,200);

frame.add(new ProjectPanel() );

JButton button = new JButton(“Run myProject”);

add(button);

button.addActionListener(

new ActionListener()

{ public void actionPerformed(ActionEvent e)

{

frame.setVisible(!frame.isVisible()); //переключення

}

});

}

}

Запуск аплета здійснюється браузером при перегляді веб-сторінки, в якій є посилання на цей аплет. Розглянемо HTML-дескриптор <applet>. Атрибут code цього дескриптора задає ім’я класа, де міститься код програми (а також шлях до файла, якщо він міститься в іншому місці, ніж HTML-файл). Ім’я класа обов’язково завершується „ .class ”. Атрибути width і height визначають розміри вікна, в якому розміщується аплет. Розміри задаються в пікселях. Також потрібно розміщувати дескриптор </applet>, що закриває опис аплета. Увага: без визначення атрибутів code, width, height запуск аплета неможливий.

Існує можливість передавати аплету інформацію про значення деяких параметрів у HTML-файлі. Для цього використовують дескриптор <param name

Приклад:

<applet code = “FontParamApplet.class” width=200,height=200>

<param name = “font” value “Helvetica”/>

<applet>

Аплет отримує значення параметра за допомогою метода getParametr() класу Applet. Наприклад,

public class FontApplet extends JApplet

{

public void init()

{….

String fontName = getParametr(“font”);

}

}

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

Безпека використання аплетів. В зв’язку зі зловживаннями можливостями, що надає програмування аплетів, розроблені заходи, щодо підсилення контролю за аплетами, які запускаються:

аплети не можуть запускати файли, що виконуються на локальному комп’ютер;

аплет не може взаємодіяти ні з яким іншим комп’ютером, окрім сервера;

аплет не може читати дані з локального комп’ютера або записувати туда дані;

аплети не можуть отримувати інформацію про локальний комп’ютер, окрім інформації про наявність віртуальної машини Java;

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

Фірмою Sun розроблений HTML-конвертер для автоматичного перетворювання HTML-сторінок старої версії в нову. Такий конвертор можна відшукати на сайті фірми http://java.sun.com/products

Аплет рекомендується пакувати в jar-файли.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]