Смекни!
smekni.com

Огляд технології сервлетів (стр. 3 из 3)


3. Робота з графікою в Java

В Java аплети можуть малюватися на екрані, використовуючи метод paint(). Оскільки сам аплет явно ніколи не викликає метод repaint(), то це необхідно здійснювати програмісту вручну, або підключити аплет до слухача подій, який забезпечить перемалювання аплету при настанні визначеної події. У аплета є три різних способи, які можна використати для малювання:

1. repaint(перемалювання) викликається в будь-який час, коли аплет повинен заново вивести своє зображення на екран.

2. update (обновлення) викликається методом repaint(), указуючи, що настав момент для обновлення зображення; стандартний метод update () призводить очистку зображення і викликає метод paint().

3. paint(малювання) призводить вивід зображення аплета у відведеному місці на екрані; методу paint() в якості параметра передається об’єкт Graphics, який аплет може використовувати для малювання різних фігур і зображень.

Пакет AWT підтримує широкий вибір графічних методів. Всі графічні елементи пов’язані з вікнами. Це може бути головне або дочірнє вікно атлета чи окреме вікно додатку [4].

В Java використовується звичайна система координат (х, у), де х – кількість екранних точок від лівої границі екрану, у – кількість від верхньої границі екрану. Лівому верхньому куту відповідають координати (0,0). Така система координат використовується практично у всіх графічних системах. Координати задаються в пікселях. Вся інформація виводиться на екран з допомогою графічного контексту (graphicscontext), який інкапсульований в класі Graphics і отримується двома способами:

1. Передається в аплет під час виклику одного з багаточисельних методів таких як paint() абоupdate().

2. Повертається методом getGraphics().

В класі Graphics визначено деяку множину графічних функцій. Кожний графічний об’єкт може бути представлений як незаповнений, або заповнений в вигляді контура. Об’єкти відображаються і заповняються вибраним в даний момент кольором, а отже по замовчуванню – чорним. Якщо графічний об’єкт перевершує розмір вікна, то він автоматично обрізається.

Клас Graphics забезпечує засіб для малювання наступних об’єктів:

1. Прямих.

2. Прямокутників і багатокутників.

3. Еліпсів і кругів.

4. Дуг.

5. Графічних зображень.

6. Тексту (різними шрифтами) .

3.1 Зміна розміру графічних об’єктів

Часто приходиться задавати розмір графічних об’єктів таким чином, щоб він відповідав розміру вікна, в якому буде відображатися даний об’єкт. Для цього потрібно спочатку викликати метод size() вікна. Його синтаксис має вигляд Dimensionsize(). Даний метод повертає розмір вікна, інкапсульовані в об’єкті Dіmension. Знаючи даний розмір вікна, можна відповідним образом масштабувати графічний об’єкт [3].

Така технологія використовується в аплеті, яка спочатку представляє собою квадрат 200*200 пікселів, а потім може збільшуватися чи зменшуватися в результаті виникнення подій.

Для вказання аплету, що йому необхідно змінити свій розмір, існує метод resize(Dimensionsize). Він призначений для встановлення нового розміру вікна аплету, і автоматично викликає метод repaint().


3.2 Робота з кольорами в Java

Javaпідтримує роботу з кольором в режимі, не зважаючи від пристрою. Система кольорів пакета AWT дозволяє задавати будь-який бажаючий колір. Для цього вона знаходить найбільш відповідний колір з числа можливих для дисплея, на якому в даний момент працює програма чи аплет. Модель кольору HSB (Hue – відтінок, Saturation– насиченість,

Brightness – яскравість ) являється альтернативною моделлю RGB. Відтінок, насиченість і яскравість задаються числами в діапазоні від 0 до 1. 1 – відповідає світлому кольору, 0 – чорному. За допомогою методів GetRed, GetGreen, GetBlue можна отримати червоні, зелені і сині кольори. Синтаксис цих методів наступний:

int getRed()

int getGreen()

int getBlue()

Кожний з цих методів повертає RGB – складову кольору об’єкта Color в молодших восьми розрядах цілого числа.

3.2 Огляд компонентів Frame та Panel

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

Клас Panelє конкретним підкласом абстрактного підкласу Container. Він не містить нових методів, а лише реалізує методи класу Container.Panel можна представити собі як рекурсивний компонент екрану. Клас Panel являється суперкласом для класу Applet. Якщо вивід призначається аплету, то виводиться інформація, яка відображається на поверхні об’єкта Panel. Отже, панель – це вікно, яке не має рядка заголовка, меню і границі. Ось тому, при перегляді аплета з допомогою браузера ці елементи не видно. При запуску аплета з допомогою програми перегляду на екрані видно границі і заголовок, але вони відносяться лише до програми перегляду аплета.

До об’єкту Panel можна добавляти й інші компоненти з допомогою методу add(), після чого можна вручну змінювати їх положення та розмір на екрані з допомогою методів move(), resize() чи reshape() [3].

Список літератури

1. Холл М. Сервлеты и JavaServer Pages. Библиотека програмиста. – СПб.:Питер, 2001. – 496.

2. JavaServer Pages™ Specification version 2.0. - Sun Microsystems, 2003. – 765.

3. Грофф Дж., Вайнберг П. SQL: Полное руководство: Пер.с англ. –К BHV, 2001. – 816.

4. Вебер Д. Технология Java™ в подлиннике: Пер. с англ. – СПб.: BHV, 2000. – 1104.

5. Эккель Б. Философия Java. Библиотека програмиста. – СПб: Питер, 2001. – 880.