русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Управление текстовым выводом с помощью класса FontMetrics


Дата добавления: 2015-06-12; просмотров: 638; Нарушение авторских прав


Для большинства шрифтов не все символы имеют одинаковую ширину (такие шрифты называют пропорциональными). Кроме того, высота каждого символа, длина выносных элементов (свисающих частей, как у символов g или р, например) и величина пробела между горизонтальными строками изменяется от шрифта к шрифту. Далее, может быть изменен размер шрифта (в пунктах). Переменный характер этих (и других) атрибутов не имел бы слишком больших последствий, если бы Java не требовал от программиста ручного управления фактически всем текстовым выводом.

Учитывая, что размеры каждого шрифта могут отличаться и что шрифты могут быть изменены во время выполнения программы, должен существовать некоторый способ для определения размеров и различных других, атрибутов текущего шрифта. Например, для записи одной строки текста после другой необходимо как-то узнать, какова высота шрифта и сколько пикселов необходимо иметь между строками. Чтобы заполнить эту потребность, AWT включает класс FontMetrics, который инкапсулирует различную информацию о шрифте. Начнем с определения общей терминологии, используемой при описании шрифтов:

□ Высота (Height) — размер (от верха до низа) самого высокого символа в шрифте.

□ Базовая линия (Baseline) — линия, по которой выровнен низ всех символов (не считая десцендера).

□ Высота надстрочного элемента, асцендер (Ascent) — расстояние от базовой линии до верха символа.

□ Высота подстрочного элемента, десцендер (Descent) — расстояние от базовой линии до низа символа.

□ Интерлиньяж (Leading) — расстояния между самым низом одной строки текста и самым верхом следующей строки.

Во многих из предыдущих примеров использовался метод drawString().

Он выводит строку в текущем шрифте и цвете, начиная с определенного положения в окне. Однако точка вывода находится слева на базовой линии, а не в левом верхнем углу окна, как обычно в других рисующих методах. Общая ошибка — рисовать строку в той же самой координате, в которой вы рисовали бы прямоугольник. Например, при рисовании прямоугольника начиная с точки 0,0 в окне апплета будет изображен полный прямоугольник. Но при рисовании строки "Typesetting" с координатами 0, 0 будут изображены только нижние выносные элементы (или десцендеры) символов у, р, и g. Используя метрику шрифта, можно определять надлежащее размещение каждой отображаемой строки.



Класс FontMetrics определяет несколько методов, которые помогают управлять текстовым выводом. Наиболее используемые методы перечислены в табл. 14.4. Они помогают должным образом отобразить текст в окне.

Таблица 14.4. Некоторые методы класса FontMetrics

Метод Описание
int bytesWidth (byte b[ ], int start, int numBytes) Возвращает ширину строки, состоящей из numBytes символов, содержащихся в массиве b. Параметр start указывает номер начального символа этой строки в массиве b
int charWidth(char c[], int start, int numChars) Возвращает ширину строки, состоящей из numChars символов, содержащихся в массиве с. Параметр start указывает номер начального символа этой строки в массиве с
int charWidth (char c) Возвращает ширину с
int charWidth (int c) Возвращает ширину с
int getAscent() Возвращает асцендер шрифта
int getDescent () Возвращает десцендер шрифта
Font getFont() Возвращает шрифт
int getHeight() Возвращает высоту строки текста. Это значение можно использовать для вывода в окно многострочного текста
int getLeading() Возвращает размер интерлиньяжа
int getMaxAdvance () Возвращает ширину самого широкого символа. Возвращает -1, если это значение недоступно
int getMaxAscent() Возвращает максимальный асцендер
int getMaxDescent() Возвращает максимальный десцендер
int[ ] getWidths() Возвращает ширины первых 256 символов
int stringWidth(String str) Возвращает ширину строки, указанной в параметре str
String toString() Возвращает строчный эквивалент вызываю­щего объекта

Рассмотрим несколько примеров.



<== предыдущая лекция | следующая лекция ==>
Программа 110. Свойства шрифта | Отображение многострочного текста


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.138 сек.