Класс FontMetrics

Все реализуемые интерфейсы:
Serializable
public abstract class FontMetrics
extends Object
implements Serializable

Класс FontMetrics определяет объект метрик шрифта, который инкапсулирует информацию о рендеринге конкретного шрифта на конкретном экране.

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

The letter 'p' showing its 'reference point' Обратите внимание, что реализации этих методов неэффективны, поэтому они обычно переопределяются более эффективными реализациями, специфичными для инструментария.

Когда приложение запрашивает размещение символа в позиции (x, y), символ размещается так, что его точка отсчета (показана точкой на сопровождающем изображении) помещается в эту позицию. Точка отсчета определяет горизонтальную линию, называемую базовой линией символа. В обычном наборе символов базовых линий символов должны выравниваться.

Кроме того, каждый символ в шрифте имеет восходящую часть, нисходящую часть и ширину вывода. Восходящая часть — это величина, на которую символ поднимается над базовой линией. Нисходящая часть — это величина, на которую символ опускается ниже базовой линии. Ширина вывода указывает позицию, в которой AWT должен разместить следующий символ.

Массив символов или строка также могут иметь восходящую часть, нисходящую часть и ширину вывода. Восходящая часть массива — это максимальная восходящая часть любого символа в массиве. Нисходящая часть — это максимальное значение нисходящей части любого символа в массиве. Ширина вывода — это сумма ширин вывода каждого из символов в массиве символов. Вывод String — это расстояние вдоль базовой линии String. Это расстояние — ширина, которая должна использоваться для центрирования или выравнивания по правому краю String.

Обратите внимание, что вывод String не обязательно равен сумме выводов его символов, измеренных изолированно, поскольку ширина символа может изменяться в зависимости от контекста. Например, в арабском тексте форма символа может изменяться для соединения с другими символами. Кроме того, в некоторых системах письма определенные последовательности символов могут представляться одним изображением, называемым лигатурой. Измерение символов по отдельности не учитывает эти преобразования.

Метрики шрифта относительны к базовой линии, что означает, что они обычно независимы от поворота шрифта (за исключением возможных эффектов сетчатого подгонки). См. Font.

С момента:
1.0
См. также:
Font, Сериализованная форма

Поля

Модификатор и тип Поле Описание
protected Font font

Фактический Font, из которого создаются метрики шрифта.

Конструкторы

Модификатор Конструктор Описание
protected FontMetrics​(Font font)

Создаёт новый объект FontMetrics для определения высоты и ширины информации о заданном Font и специфических символьных глифах в этом Font.

Методы

Модификатор и тип Метод Описание
int bytesWidth​(byte[] data, int off, int len)

Возвращает общую ширину вывода для отображения указанного массива байтов в этом Font.

int charsWidth​(char[] data, int off, int len)

Возвращает общую ширину вывода для отображения указанного массива символов в этом Font.

int charWidth​(char ch)

Возвращает ширину вывода указанного символа в этом Font.

int charWidth​(int codePoint)

Возвращает ширину вывода указанного символа в этом Font.

int getAscent()

Определяет восходящую часть шрифта Font, описываемого этим объектом FontMetrics.

int getDescent()

Определяет нисходящую часть шрифта Font, описываемого этим объектом FontMetrics.

Font getFont()

Получает Font, описываемое этим объектом FontMetrics.

FontRenderContext getFontRenderContext()

Получает FontRenderContext, используемое этим объектом FontMetrics для измерения текста.

int getHeight()

Получает стандартную высоту строки текста в этом шрифте.

int getLeading()

Определяет стандартный отступ Font, описываемого этим объектом FontMetrics.

LineMetrics getLineMetrics​(char[] chars, int beginIndex, int limit, Graphics context)

Возвращает объект LineMetrics для указанного массива символов в указанном контексте Graphics.

LineMetrics getLineMetrics​(String str, int beginIndex, int limit, Graphics context)

Возвращает объект LineMetrics для указанного String в указанном контексте Graphics.

LineMetrics getLineMetrics​(String str, Graphics context)

Возвращает объект LineMetrics для указанного String в указанном контексте Graphics.

LineMetrics getLineMetrics​(CharacterIterator ci, int beginIndex, int limit, Graphics context)

Возвращает объект LineMetrics для указанного CharacterIterator в указанном контексте Graphics.

int getMaxAdvance()

Получает максимальную ширину вывода любого символа в этом Font.

int getMaxAscent()

Определяет максимальную восходящую часть Font, описываемого этим объектом FontMetrics.

Rectangle2D getMaxCharBounds​(Graphics context)

Возвращает пределы для символа с максимальными пределами в указанном контексте Graphics.

int getMaxDecent()

Устарело.

Начиная с версии JDK 1.1.1, заменено на getMaxDescent().

int getMaxDescent()

Определяет максимальную нисходящую часть Font, описываемого этим объектом FontMetrics.

Rectangle2D getStringBounds​(char[] chars, int beginIndex, int limit, Graphics context)

Возвращает пределы указанного массива символов в указанном контексте Graphics.

Rectangle2D getStringBounds​(String str, int beginIndex, int limit, Graphics context)

Возвращает пределы указанного String в указанном контексте Graphics.

Rectangle2D getStringBounds​(String str, Graphics context)

Возвращает пределы указанного String в указанном контексте Graphics.

Rectangle2D getStringBounds​(CharacterIterator ci, int beginIndex, int limit, Graphics context)

Возвращает пределы символов, индексированных в указанном CharacterIterator в указанном контексте Graphics.

int[] getWidths()

Получает ширину вывода первых 256 символов в Font.

boolean hasUniformLineMetrics()

Проверяет, имеет ли Font равномерные метрики строки.

int stringWidth​(String str)

Возвращает общую ширину вывода для отображения указанного String в этом Font.

String toString()

Возвращает представление значений этого объекта FontMetrics как String.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Поля

font

protected Font font

Фактический Font шрифта, на основе которого создаются метрики шрифта. Не может быть null.

См. также:
getFont()

Конструкторы

FontMetrics

protected FontMetrics(Font font)

Создает новый объект FontMetrics для определения высоты и ширины указанного Font и определённых глифов символов в этом Font.

Параметры:
font - шрифт
См. также:
Font

Методы

getFont

public Font getFont()

Возвращает шрифт, описанный этим объектом.

Возвращает:
шрифт, описанный этим объектом.

getFontRenderContext

public FontRenderContext getFontRenderContext()

Возвращает контекст отрисовки шрифта, используемый этим объектом для измерения текста.

Обратите внимание, что методы в этом классе, принимающие параметр FontRenderContext, измеряют текст, используя контекст отрисовки шрифта этого параметра, а не текущего объекта.

Возвращает:
контекст отрисовки шрифта, используемый этим объектом.
С тех пор:
1.6

getLeading

public int getLeading()

Определяет стандартное отведение шрифта, описанного этим объектом. Стандартное отведение, или межстрочный интервал, — это логическое количество пробела, которое следует зарезервировать между спуском одной строки текста и восходом следующей. Метрика высоты рассчитывается, включая этот дополнительный пробел.

Возвращает:
стандартное отведение шрифта.
См. также:
getHeight(), getAscent(), getDescent()

getAscent

public int getAscent()

Определяет восходящую часть шрифта, описанную этим объектом. Восходящая часть шрифта — это расстояние от базовой линии шрифта до верхней части большинства букв алфавита. Некоторые символы в шрифте могут выходить за пределы восходящей части шрифта.

Возвращает:
восходящую часть шрифта.
См. также:
getMaxAscent()

getDescent

public int getDescent()

Определяет нисходящую часть шрифта, описанную этим объектом. Нисходящая часть шрифта — это расстояние от базовой линии шрифта до нижней части большинства букв алфавита с нисходящими частями. Некоторые символы в шрифте могут выходить за пределы нисходящей части шрифта.

Возвращает:
нисходящую часть шрифта.
См. также:
getMaxDescent()

getHeight

public int getHeight()

Возвращает стандартную высоту строки текста в этом шрифте. Это расстояние между базовыми линиями смежных строк текста. Оно равно сумме отведения, восходящей и нисходящей части. Из-за округления это значение может не совпадать с getAscent() + getDescent() + getLeading(). Нет гарантии, что строки текста, расположенные на этом расстоянии, не пересекаются; такие строки могут перекрываться, если некоторые символы выходят за пределы стандартной восходящей или стандартной нисходящей метрики.

Возвращает:
стандартную высоту шрифта.
См. также:
getLeading(), getAscent(), getDescent()

getMaxAscent

public int getMaxAscent()

Определяет максимальную восходящую часть шрифта, описанного этим объектом. Ни один символ не выходит за пределы базовой линии шрифта, превышая эту высоту.

Возвращает:
максимальную восходящую часть любого символа в шрифте.
См. также:
getAscent()

getMaxDescent

public int getMaxDescent()

Определяет максимальную нисходящую часть шрифта, описанного этим объектом. Ни один символ не выходит за пределы базовой линии шрифта, опускаясь ниже этой высоты.

Возвращает:
максимальную нисходящую часть любого символа в шрифте.
См. также:
getDescent()

getMaxDecent

@Deprecated
public int getMaxDecent()
Устарело.
Начиная с версии JDK 1.1.1, заменено на getMaxDescent().

Только для совместимости со старыми версиями.

Возвращает:
максимальную нисходящую часть любого символа в шрифте.
См. также:
getMaxDescent()

getMaxAdvance

public int getMaxAdvance()

Возвращает максимальную ширину вывода любого символа в этом шрифте. Вывод — это расстояние от самой левой до самой правой точки символа на базовой линии. Вывод строки не обязательно равен сумме выводов её символов.

Возвращает:
максимальную ширину вывода любого символа в шрифте, или -1 если максимальная ширина вывода неизвестна.

charWidth

public int charWidth(int codePoint)

Возвращает ширину вывода указанного символа в этом шрифте. Вывод — это расстояние от самой левой до самой правой точки символа на базовой линии. Обратите внимание, что вывод строки не обязательно равен сумме выводов её символов.

Этот метод не проверяет, является ли указанный символ допустимым кодом Юникода. Звонящий метод должен проверить значение символа с помощью Character.isValidCodePoint, если необходимо.

Параметры:
codePoint - символ (код Юникода) для измерения
Возвращает:
ширину вывода указанного символа в шрифте, описанном этим объектом.
См. также:
charsWidth(char[], int, int), stringWidth(String)

charWidth

public int charWidth(char ch)

Возвращает ширину вывода указанного символа в этом шрифте. Вывод — это расстояние от самой левой до самой правой точки символа на базовой линии. Обратите внимание, что вывод строки не обязательно равен сумме выводов её символов.

Примечание: Этот метод не может обрабатывать дополнительные символы. Для поддержки всех символов Юникода, включая дополнительные символы, используйте метод charWidth(int).

Параметры:
ch - символ для измерения
Возвращает:
ширину вывода указанного символа в шрифте, описанном этим объектом.
См. также:
charsWidth(char[], int, int), stringWidth(String)

stringWidth

public int stringWidth(String str)

Возвращает общую ширину вывода для отображения указанной строки в этом шрифте. Вывод — это расстояние от самой левой до самой правой точки строки на базовой линии.

Обратите внимание, что вывод строки не обязательно равен сумме выводов её символов.

Параметры:
str - строка для измерения
Возвращает:
ширину вывода указанной строки в шрифте, описанном этим объектом.
Исключения:
NullPointerException - если str равно null.
См. также:
bytesWidth(byte[], int, int), charsWidth(char[], int, int), getStringBounds(String, Graphics)

charsWidth

public int charsWidth(char[] data,
                      int off,
                      int len)

Возвращает общую ширину вывода для отображения указанного массива символов в этом шрифте. Вывод — это расстояние от самой левой до самой правой точки строки на базовой линии. Вывод строки не обязательно равен сумме выводов её символов. Это эквивалентно измерению строки, образованной символами в указанном диапазоне.

Параметры:
data - массив символов для измерения
off - начальный индекс символов в массиве
len - количество символов для измерения из массива
Возвращает:
ширину вывода подмассива указанного массива символов в шрифте, описанном этим объектом.
Исключения:
NullPointerException - если chars равно null.
IndexOutOfBoundsException - если аргументы start и count индексируют символы за пределами массива chars.
См. также:
charWidth(int), charWidth(char), bytesWidth(byte[], int, int), stringWidth(String)

bytesWidth

public int bytesWidth(byte[] data,
                      int off,
                      int len)

Возвращает общую ширину вывода для отображения указанного массива байтов в этом шрифте. Вывод — это расстояние от самой левой до самой правой точки строки на базовой линии. Вывод строки не обязательно равен сумме выводов её символов. Это эквивалентно измерению строки, образованной символами в указанном диапазоне.

Параметры:
data - массив байтов для измерения
off - начальный индекс байтов в массиве
len - количество байтов для измерения из массива
Возвращает:
ширину вывода подмассива указанного массива байтов в шрифте, описанном этим объектом.
Исключения:
NullPointerException - если bytes равно null.
IndexOutOfBoundsException - если аргументы start и length индексируют байты за пределами массива bytes.
См. также:
charsWidth(char[], int, int), stringWidth(String)

getWidths

public int[] getWidths()

Получает ширины продвижения первых 256 символов в Font. Продвижение — это расстояние от самой левой точки до самой правой точки на базовой линии символа. Обратите внимание, что продвижение String необязательно равно сумме продвижений его символов.

Возвращает:
массив, хранящий ширины продвижения символов в Font, описанные этим объектом FontMetrics.

hasUniformLineMetrics

public boolean hasUniformLineMetrics()

Проверяет, имеет ли Font равномерные метрики строк. Композитный шрифт может состоять из нескольких разных шрифтов, чтобы охватить различные наборы символов. В таких случаях объекты FontLineMetrics не являются равномерными. Разные шрифты могут иметь разный подъем, спуск, метрики и так далее. Эта информация иногда необходима для измерения строк и переноса слов.

Возвращает:
true , если шрифт имеет равномерные метрики строк; false в противном случае.
См. также:
Font.hasUniformLineMetrics()

getLineMetrics

public LineMetrics getLineMetrics(String str,
                                  Graphics context)

Возвращает объект LineMetrics для указанной String в указанном контексте Graphics.

Параметры:
str - указанная String
context - указанный контекст Graphics
Возвращает:
объект LineMetrics , созданный с указанным String и контекстом Graphics.
См. также:
Font.getLineMetrics(String, FontRenderContext)

getLineMetrics

public LineMetrics getLineMetrics(String str,
                                  int beginIndex,
                                  int limit,
                                  Graphics context)

Возвращает объект LineMetrics для указанной String в указанном контексте Graphics.

Параметры:
str - указанная String
beginIndex - начальный смещение str
limit - конечное смещение str
context - указанный контекст Graphics
Возвращает:
объект LineMetrics , созданный с указанным String и контекстом Graphics.
См. также:
Font.getLineMetrics(String, int, int, FontRenderContext)

getLineMetrics

public LineMetrics getLineMetrics(char[] chars,
                                  int beginIndex,
                                  int limit,
                                  Graphics context)

Возвращает объект LineMetrics для указанного массива символов в указанном контексте Graphics.

Параметры:
chars - указанный массив символов
beginIndex - начальное смещение chars
limit - конечное смещение chars
context - указанный контекст Graphics
Возвращает:
объект LineMetrics , созданный с указанным массивом символов и контекстом Graphics.
См. также:
Font.getLineMetrics(char[], int, int, FontRenderContext)

getLineMetrics

public LineMetrics getLineMetrics(CharacterIterator ci,
                                  int beginIndex,
                                  int limit,
                                  Graphics context)

Возвращает объект LineMetrics для указанного объекта CharacterIterator в указанном контексте Graphics.

Параметры:
ci - указанный объект CharacterIterator
beginIndex - начальное смещение в ci
limit - конечный индекс ci
context - указанный контекст Graphics
Возвращает:
объект LineMetrics , созданный с указанными аргументами.
См. также:
Font.getLineMetrics(CharacterIterator, int, int, FontRenderContext)

getStringBounds

public Rectangle2D getStringBounds(String str,
                                   Graphics context)

Возвращает область указанной String в указанном контексте Graphics. Область используется для выравнивания String.

Примечание: Возвращаемая область находится в координатах, относящихся к базовой линии (см. class notes).

Параметры:
str - указанная String
context - указанный контекст Graphics
Возвращает:
прямоугольник Rectangle2D, являющийся ограничивающей областью указанной String в указанном контексте Graphics.
См. также:
Font.getStringBounds(String, FontRenderContext)

getStringBounds

public Rectangle2D getStringBounds(String str,
                                   int beginIndex,
                                   int limit,
                                   Graphics context)

Возвращает область указанной String в указанном контексте Graphics. Область используется для выравнивания String.

Примечание: Возвращаемая область находится в координатах, относящихся к базовой линии (см. class notes).

Параметры:
str - указанная String
beginIndex - смещение начала str
limit - конечное смещение str
context - указанный контекст Graphics
Возвращает:
прямоугольник Rectangle2D, являющийся ограничивающей областью указанной String в указанном контексте Graphics.
См. также:
Font.getStringBounds(String, int, int, FontRenderContext)

getStringBounds

public Rectangle2D getStringBounds(char[] chars,
                                   int beginIndex,
                                   int limit,
                                   Graphics context)

Возвращает область указанного массива символов в указанном контексте Graphics. Область используется для выравнивания String , созданного с указанным массивом символов, beginIndex и limit.

Примечание: Возвращаемая область находится в координатах, относящихся к базовой линии (см. class notes).

Параметры:
chars - массив символов
beginIndex - начальное смещение массива символов
limit - конечное смещение массива символов
context - указанный контекст Graphics
Возвращает:
прямоугольник Rectangle2D, являющийся ограничивающей областью указанного массива символов в указанном контексте Graphics.
См. также:
Font.getStringBounds(char[], int, int, FontRenderContext)

getStringBounds

public Rectangle2D getStringBounds(CharacterIterator ci,
                                   int beginIndex,
                                   int limit,
                                   Graphics context)

Возвращает область символов, индексированных в указанном CharacterIterator в указанном контексте Graphics.

Примечание: Возвращаемая область находится в координатах, относящихся к базовой линии (см. class notes).

Параметры:
ci - указанный объект CharacterIterator
beginIndex - начальное смещение в ci
limit - конечный индекс ci
context - указанный контекст Graphics
Возвращает:
прямоугольник Rectangle2D, являющийся ограничивающей областью символов, индексированных в указанном CharacterIterator в указанном контексте Graphics.
См. также:
Font.getStringBounds(CharacterIterator, int, int, FontRenderContext)

getMaxCharBounds

public Rectangle2D getMaxCharBounds(Graphics context)

Возвращает область для символа с максимальной областью в указанном контексте Graphics.

Параметры:
context - указанный контекст Graphics
Возвращает:
прямоугольник Rectangle2D, являющийся ограничивающей областью для символа с максимальной областью.
См. также:
Font.getMaxCharBounds(FontRenderContext)

toString

public String toString()

Возвращает представление значений этого объекта FontMetrics в виде String.

Переопределяет:
toString в классе Object
Возвращает:
представление String этого объекта FontMetrics.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/FontMetrics.html

Spec-Zone .ru
спецификации, руководства, описания, API