Professional Documents
Culture Documents
Л7сем3 ТДО
Л7сем3 ТДО
Висота шрифту - це відстань між сусідніми базовими лініями, яка дорівнює сумі
спуску, підйому і інтерліньяжу.
double stringWidth = bounds.getWidth() - довжина рядка
double stringHeight = bounds.getHeight() - висота рядка(шрифту)
double ascent = - bounds.getY(); - підйом рядки (шрифту)
Координата Y відраховується від базової лінії. Для верхньої частини прямокутника
вона є негативною.
Інтерліньяж або спуск можна дізнатися за
допомогою методу getLineMetrics () класу Font,
який повертає об'єкт класу LineMetrics.
Приклад в книзі «Хорстманн. Java. Бібліотека
професіонала, том 1. Основи. 10-е видання »,
стор 516.
У прикладі відображаються рядок, базова лінія та
обмежує прямокутник.
3.9.Відтворення зображень
Прості зображення утворюються малюванням ліній і форм. А складні зображення
на зразок фотографічних зазвичай формуються зовнішніми засобами, наприклад,
при скануванні або обробці в спеціальних графічних редакторах.
Якщо зображення зберігаються в файлах на комп'ютері або в Інтернеті, їх можна
ввести, а потім відтворити на екрані за допомогою об'єктів класу Graphics. Ввести
зображення можна різними способами. Можна, наприклад, скористатися класом
Imagelcon:
Image image = new Imagelcon(filename).getImage();
Змінна image містить посилання на об'єкт, що інкапсулює дані зображення.
Зображення можна далі вивести на екран за допомогою методу drawlmage () з
класу Graphics.
public void paintComponent(Graphics g) {
...
g.drawlmage (image, x, y, null);
}
Приклад в книзі «Хорстманн. Java. Бібліотека професіонала, том 1.
Основи. 10-е видання », стор 520.
Програма багаторазово виводить зображення в
вікні рядами. Виведення зображення рядами
здійснюється за допомогою методу
paintComponent (). Спочатку одна копія
зображення відтворюється в лівому верхньому
кутку вікна, а потім викликається метод соруАгеа(),
який копіює його по всьому вікну:
for (int i=0; i*imageWidth<=getWidth(); i++)
for (int j=0; j*imageHeight<=getHeight(); j++)
if (i+j>0) g.copyArea(0,0, imageWidth, imageHeight,
i*imageWidth, j*imageHeight);