Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpori_oop.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
441.86 Кб
Скачать
  1. Графічні засоби мови Java. Клас Canvas.

Особняком від всіх елементів стоїть клас Canvas. Його візуальне представлення – порожній квадрат, на якому можна виконувати малювання і який може обробляти події натиснення кнопок миші.

  1. Реалізація роботи прапорців та пермикачів. Checkbox (Прапорець та Перемикач)

Клас Checkbox відповідає за створення і відображення кнопок з не­за­леж­ною фіксацією. Це кнопки, що мають два стани: "увімкнене" і "вим­к­не­не". Клік на такій кнопці приводить до того, що її стан міняється на проти­лежний. В початковий момент прапорець скинутий (тобто має стан false).

Якщо розмістити кілька кнопок з незалежною фіксацією в середині елемента класу CheckboxGroup, то замість них ми одержимо кнопки з залежною фіксацією – перемикачі (radio button), тобто групу кнопок, серед яких у той самий момент може бути включено тільки одну. Якщо натиснути будь-яку кнопку з групи, то раніше натиснуту кнопка буде відпущено (це нагадує радіоприймач, в якому одночасно може працювати тільки одна програма).

Конструктори:

Checkbox(); // прапорець без тексту

Checkbox(String str); // прапорець з текстом

Checkbox(String str, CheckboхGroup group, boolean initState);

/* прапорець з текстом, що належить групі (якщо створюється саме прапорець, а не перемикач, то цей параметр повинен мати значення null */

Корисні методи наведено в таблиці 5.

Таблиця 5 – Основні методи класу Checkbox

boolean getState()

метод класу Checkbox, що повертає статус прапорця

getCurrent()

метод класу CheckboxGroup, повертає перемикач, який в даний момента включений

SetCurrent()

встановлює активну кнопку перемикача (для класу CheckboxGroup)

setLabel()

getLabel()

встановлює або повертає текст при прапорці або перемикачі

Обробка перемикачів та прапорців. При натисканні мишею по прапорцю або перемикачу викликається метод action(), другий параметр якого wA є об’єктом класу boolean, який має значення true, якщо прапорець встановлено, і false – в протилежному випадку.

  1. Клас Graphics. Малювання графічних примітивів.

Насправді метод getImage() не завантажує зображення через мережу, як це може здаватися. Він тільки створює об’єкт Image. Реальне завантаження файла растрового зображення буде виконуватися методом рисування drawImage(), який належить класу Graphics. Варіанти цього методу (не всі):

public abstract boolean drawImage(Image img, int x, int y,

ImageObserver observer);

public abstract boolean drawImage(Image img, int x,int y,

int width, int height, ImageObserver observer);

Перший параметр – посилання на об’єкт класу Image, який отримано раніше за допомогою getImage(). Далі x та y – координати лівого верхнього кута прямокутного регіону, в якому буде виводитись зображення. Якщо для рисування обрано метод drawImage() з параметрами width (ширина) та height (висота), зображення буде виведено з масштабуванням. Зверніть увагу! Помноживши ці параметри на коефіцієнти, можна розтягнути (стиснути) зображення по горизонталі та вертикалі. Параметр observer – це посилання на об’єкт класу ImageObserver, який отримає звістку при завантаженні зображення. Звичайно таким об’єктом є сам клас, тому цей параметр вказується як this.

Коли викликається метод drawImage() зображення ще може бути не завантажено. Оскільки процес завантаження по мережі – досить тривалий та не передбачуваний в часі, необхідно передбачити якісь засоби для контролю над цим процесом. Принаймні когось треба повідомити, коли зображення вже буде повністю завантажено, що і робиться в цих методах. Можна виводити зображення по мірі готовності, можна дочекатися повного завантаження, а вже потім виводити на екран.

Метод getGraphics() дозволяє отримати позаекранний контекст зображення для рисування зображення не у вікні додатка або аплета, а в оперативній пам’яті:

public abstract Graphics getGraphics();

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

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