- •Об'єктно-орієнтовані мови. Основні принципи об'єктно-орієнтованого програмування.
- •Відмінності мови Java від інших мов програмування
- •Основні типи даних мови Java.
- •Перетворення даних в програмах на Java.
- •Пакети класів, їх створення та використання.
- •Використання рядків в мові Java. Клас String.
- •Менеджери розташування. Їх призначення та використання Розкладки
- •FlowLayout (послідовне розташування)
- •GridLayout (табличне розташування)
- •BorderLayout (полярне розташування)
- •CardLayout (блокнотне розташування)
- •GridBagLayout (коміркове розташування)
- •Пакет java.Awt. Ієрархія класів в ньому. Клас Component.
- •Контейнери. Їх призначення та загальні методи контейнерів Контейнери
- •Загальні характеристика класу Component (див 13)
- •Використання контейнера Panel та основні його методи. Панель
- •Контейнер Frame, його особливості. Frame (Фрейми)
- •Графічні засоби мови Java. Клас Canvas.
- •Реалізація роботи прапорців та пермикачів. Checkbox (Прапорець та Перемикач)
- •Клас Graphics. Малювання графічних примітивів.
- •Виведення тексту. Клас Font.
- •Повідомлення та події. Поля та методи класу Event Класи подій
- •Обробка повідомлень миші. Основні методи.
- •Виведення растрових зображень. Класи Url та Image. Завантаження растрового зображення
- •Виведення зображення
- •Клас Image
- •Способи усунення мерехтіння при виведенні інформації на екран. Усунення мерехтіння
- •Потоки. Клас Thread.Створення потоків.
- •Створення потоків
- •Виняткові ситуації. Класи Throwable, Exception, Error. 29. Методи обробки виняткових ситуацій.
- •Аплети у порівнянні з додатками
- •Проблема безпеки
- •Включення аплетів в html-документ Створення аплетів
- •Введення-виведення даних. Базові класи введення-виведення
- •Дати порівняльну характеристику протоколів стеку tcp/ip та udp.
- •Створення сокетів tcp
- •4.3 Робота з потоковими сокетами
- •Клас Socket
- •Клас ServerSocket
- •Створення сокетів udp
- •Клас DatagramSocket
- •Клас DatagramPacket
- •Приклад серверного додатку, що реалізує датаграмний сокет.
- •Приклад клієнтського додатку, що реалізує датаграмний сокет.
Виведення растрових зображень. Класи Url та Image. Завантаження растрового зображення
Виконується за допомогою метода getImage(). Існує декілька варіантів цього метода. Насамперед, варіант цього метода, про який, до речі, пишуть всі книжки, визначено в класі Applet:
public Image getImage(URL url, String name);
Клас URL надає URL (Uniform Resource Locator, уніфікований покажчик ресурсів), який є форматом адрес ресурсів в WWW. Другий параметр задає розташування файла зображення відносно адреси URL. Наприклад,
Image img;
img = getImage("http://www.glasnet.ru//~frolov//pic","cd.gif");
Якщо аплет бажає завантажити зображення, що розташоване в тому ж каталозі, де і він сам, це можна зробити так:
img = getImage(getCodeBase(), "pic.gif");
Метод getCodeBase(), який також належить класу Applet, повертає URL-адресу аплета. Замість нього можна використовувати метод getDocumentBase(), який повертає URL-адресу HTML-файла, що містить аплет.
img = getImage(getDocumentBase(), "pic.gif");
Якщо ви створюєте на аплет, а додаток, ліпше використовувати інший варіант getImage(), який визначено в класі Toolkit
public abstract Image getImage(String filename)
Як звернутися до цього метода (зверніть увагу, що він має один параметр)? Наведемо приклад використання getImage() для завантаження файла duke1.gif, що знаходиться в підкаталозі images поточного каталога:
img = Toolkit.getDefaultToolkit().getImage("image//duke1.gif");
За будь-яких умов метод getImage() повертає об’єкт класу Image.
Виведення зображення
Зверніть увагу! Насправді метод 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() зображення ще може бути не завантажено. Оскільки процес завантаження по мережі – досить тривалий та не передбачуваний в часі, необхідно передбачити якісь засоби для контролю над цим процесом. Принаймні когось треба повідомити, коли зображення вже буде повністю завантажено, що і робиться в цих методах. Можна виводити зображення по мірі готовності, можна дочекатися повного завантаження, а вже потім виводити на екран.
