Класс FontMetrics
- Все реализованные интерфейсы:
Serializable
public abstract class FontMetrics extends Object implements Serializable
FontMetrics определяет объект метрик шрифта, который содержит информацию о рендеринге конкретного шрифта на конкретном экране. Примечание для подклассов: Поскольку многие из этих методов образуют замкнутые, взаимно рекурсивные циклы, необходимо позаботиться о том, чтобы реализовать хотя бы один из методов в каждом таком цикле, чтобы избежать бесконечной рекурсии при использовании вашего подкласса. В частности, минимальный рекомендуемый набор методов для переопределения, чтобы обеспечить корректность и предотвратить бесконечную рекурсию (хотя другие подмножества являются равно возможными):
Обратите внимание, что реализации этих методов неэффективны, поэтому обычно они переопределяются более эффективными реализациями, специфичными для инструментария.
Когда приложение запрашивает размещение символа в позиции (x, y), символ размещается так, что его точка отсчета (показана точкой на сопровождающей картинке) помещается в эту позицию. Точка отсчета определяет горизонтальную линию, называемую базовой линией символа. При нормальной печати базовые линии символов должны выравниваться.
Кроме того, каждый символ в шрифте имеет восходящую, нисходящую и ширину выравнивания. Восходящая часть — это величина, на которую символ поднимается над базовой линией. Нисходящая часть — это величина, на которую символ опускается ниже базовой линии. Ширина выравнивания указывает позицию, в которой AWT должен разместить следующий символ.
Массив символов или строка также могут иметь восходящую, нисходящую и ширину выравнивания. Восходящая часть массива — это максимальная восходящая часть любого символа в массиве. Нисходящая часть — это максимальное нисходящее значение любого символа в массиве. Ширина выравнивания — это сумма ширин выравнивания каждого символа в массиве символов. Выравнивание String — это расстояние вдоль базовой линии String. Это расстояние — это ширина, которая должна использоваться для выравнивания по центру или по правому краю String.
Обратите внимание, что выравнивание String не обязательно является суммой выравниваний его символов, измеренных изолированно, поскольку ширина символа может изменяться в зависимости от контекста. Например, в арабском тексте форма символа может меняться для соединения с другими символами. Кроме того, в некоторых системах письма определённые последовательности символов могут представляться одной формой, называемой лигатурой. Измерение символов по отдельности не учитывает эти преобразования.
Метрики шрифта являются относительно базовой линии, что означает, что они, как правило, независимы от поворота, применённого к шрифту (за исключением возможных эффектов сетчатой подгонки). См. Font.
- С:
- 1.0
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected Font |
font |
Фактический Font, на основе которого созданы метрики шрифта. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый объект FontMetrics для получения информации о высоте и ширине указанного Font и конкретных глифов символов в этом Font. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
bytesWidth |
Возвращает общую ширину вывода указанного массива байтов в этом Font. |
int |
charsWidth |
Возвращает общую ширину вывода указанного массива символов в этом Font. |
int |
charWidth |
Возвращает ширину вывода указанного символа в этом Font. |
int |
charWidth |
Возвращает ширину вывода указанного символа в этом 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 |
Возвращает объект LineMetrics для указанного массива символов в указанном контексте Graphics. |
LineMetrics |
getLineMetrics |
|
LineMetrics |
getLineMetrics |
|
LineMetrics |
getLineMetrics |
|
int |
getMaxAdvance() |
Возвращает оценку максимальной ширины вывода любого символа в Font, описанном этим объектом FontMetrics. |
int |
getMaxAscent() |
Определяет максимальную восходящую часть Font, описанного этим объектом FontMetrics. |
Rectangle2D |
getMaxCharBounds |
Возвращает границы символа с максимальными границами в указанном контексте Graphics. |
int |
getMaxDecent() |
Устарело. |
int |
getMaxDescent() |
Определяет максимальную нисходящую часть Font, описанного этим объектом FontMetrics. |
Rectangle2D |
getStringBounds |
Возвращает границы указанного массива символов в указанном контексте Graphics. |
Rectangle2D |
getStringBounds |
Возвращает границы указанного String в указанном контексте Graphics. |
Rectangle2D |
getStringBounds |
Возвращает границы указанного String в указанном контексте Graphics. |
Rectangle2D |
getStringBounds |
Возвращает границы символов с указанными индексами в указанном CharacterIterator в указанном контексте Graphics. |
int[] |
getWidths() |
Возвращает ширины вывода первых 256 символов в Font. |
boolean |
hasUniformLineMetrics() |
Проверяет, имеет ли Font равномерные метрики строки. |
int |
stringWidth |
Возвращает общую ширину вывода указанного String в этом Font. |
String |
toString() |
Возвращает представление значений этого объекта FontMetrics в виде String. |
Подробное описание полей
font
protected Font font
Font, из которого создаются метрики шрифта. Он не может быть null.- См. также:
Подробное описание конструкторов
FontMetrics
protected FontMetrics(Font font)
FontMetrics для определения высоты и ширины заданного Font и конкретных глифов символов в этом Font.- Параметры:
-
font- заданныйFont - См. также:
Подробное описание методов
getFont
public Font getFont()
Font, описываемый этим объектом FontMetrics.- Возвращает:
Font, описываемый этим объектомFontMetrics.
getFontRenderContext
public FontRenderContext getFontRenderContext()
FontRenderContext, используемый этим объектом FontMetrics для измерения текста. Обратите внимание, что методы в этом классе, принимающие параметр Graphics, измеряют текст, используя FontRenderContext этого объекта Graphics, а не этого объекта FontRenderContext
- Возвращает:
FontRenderContext, используемый этим объектомFontMetrics.- С версии:
- 1.6
getLeading
public int getLeading()
Font , описываемый этим объектом FontMetrics . Стандартный отступ, или межстрочный интервал, это логическое значение пространства, которое необходимо зарезервировать между спуском одной строки текста и подъемом следующей строки. Метрика высоты рассчитывается с учётом этого дополнительного пространства.- Возвращает:
- стандартный отступ шрифта
Font. - См. также:
getAscent
public int getAscent()
Font , описываемого этим объектом FontMetrics . Восходящая величина шрифта - это расстояние от базовой линии шрифта до верхней части большинства букв алфавита. Некоторые символы в Font могут выходить за пределы линии восходящей величины шрифта.- Возвращает:
- восходящую величину шрифта
Font. - См. также:
getDescent
public int getDescent()
Font , описываемого этим объектом FontMetrics . Нисходящая величина шрифта - это расстояние от базовой линии шрифта до нижней части большинства букв алфавита с нисходящими элементами. Некоторые символы в Font могут выходить за пределы линии нисходящей величины шрифта.- Возвращает:
- нисходящую величину шрифта
Font. - См. также:
getHeight
public int getHeight()
- Возвращает:
- стандартную высоту шрифта.
- См. также:
getMaxAscent
public int getMaxAscent()
Font , описываемую этим объектом FontMetrics . Ни один символ не выходит за пределы базовой линии шрифта, превышая эту высоту.- Возвращает:
- максимальную восходящую величину любого символа в
Font. - См. также:
getMaxDescent
public int getMaxDescent()
Font , описываемую этим объектом FontMetrics . Ни один символ не выходит за пределы базовой линии шрифта, опускаясь ниже этой высоты.- Возвращает:
- максимальную нисходящую величину любого символа в
Font. - См. также:
getMaxDecent
@Deprecated public int getMaxDecent()
getMaxDescent().- Возвращает:
- максимальную нисходящую величину любого символа в
Font. - См. также:
getMaxAdvance
public int getMaxAdvance()
Font , описываемого этим объектом FontMetrics с важными оговорками, перечисленными ниже. Продвижение - это расстояние от самой левой точки, используемой для позиционирования символа, до самой правой точки вдоль базовой линии. Это не то же самое, что видимая ширина изображения глифа, представляющего символ.
Продвижение String не обязательно равно сумме продвижений его символов. Оно может значительно отличаться, если требуется сложное форматирование текста для правильного отображения.
Некоторые из оговорок относительно возвращаемого значения включают:
- Возвращаемое значение зависит от информации от системного шрифта, а корректность этой информации не контролируется AWT.
- Когда конкретные символы отображаются как глифы в определённом контексте рендеринга, инструкции в самом шрифте вместе с процессом растризации могут привести к тому, что некоторые глифы будут иметь большую ширину продвижения, чем указано.
- Когда запрашивается шрифт в определенном стиле, например
Font.BOLD, для которого нет точного соответствия, методы удовлетворения запрошенного рендеринга аналогичным образом могут привести к глифам, ширина продвижения которых больше, чем указанная максимальная. - В зависимости от реализации, логический шрифт или физический шрифт AWT может потребоваться найти некоторые символы из одного или нескольких «запасных» шрифтов, если основной физический шрифт не поддерживает символ. Эти запасные шрифты могут быть неизвестны или не учитываться при расчёте возвращаемой максимальной ширины продвижения. Обычно центр дизайна таких запасных шрифтов предназначен для другого алфавита, чем у основного шрифта, поэтому их ширина продвижения может значительно отличаться. Это также может привести к неожиданному результату, что шрифт, такой как
Font.MONOSPACED, может отображать глифы не одинаковой ширины.
String не обязательно равна сумме продвижений, значение всё же необходимо использовать с осторожностью. В заключение, этот метод не даёт абсолютных гарантий и даже не может гарантировать правильность в рамках некоторой погрешности. Поэтому он должен использоваться, в крайнем случае, только для оценки общего пространства, достаточного для отображения некоторого числа ещё неизвестных символов из шрифта. И это может быть либо переоценка, либо недооценка в зависимости от конкретного текста и контекста рендеринга.
- Возвращает:
- оценка максимальной ширины продвижения любого символа в
Font, или-1если максимальная ширина продвижения неизвестна.
charWidth
public int charWidth(int codePoint)
Font. Продвижение - это расстояние от самой левой точки до самой правой точки на базовой линии символа. Обратите внимание, что продвижение String не обязательно равно сумме продвижений его символов. Этот метод не проверяет указанный символ на соответствие валидному кодовому точке Unicode. Вызывающий метод должен проверить значение символа с помощью Character.isValidCodePoint, если это необходимо.
- Параметры:
-
codePoint- символ (кодовый пункт Unicode) для измерения - Возвращает:
- ширина продвижения указанного символа в
Font, описываемого этим объектомFontMetrics. - См. также:
charWidth
public int charWidth(char ch)
Font. Продвижение — это расстояние от самой левой до самой правой точки на базовой линии символа. Обратите внимание, что продвижение String не обязательно равно сумме продвижений его символов. Примечание: Этот метод не может обрабатывать дополнительные символы. Для поддержки всех символов Юникода, включая дополнительные символы, используйте метод charWidth(int).
- Параметры:
-
ch- символ, который нужно измерить - Возвращает:
- ширину продвижения указанного символа в
Font, описываемом этим объектомFontMetrics. - См. также:
stringWidth
public int stringWidth(String str)
String в этом Font. Продвижение — это расстояние от самой левой до самой правой точки на базовой линии строки. Обратите внимание, что продвижение String не обязательно равно сумме продвижений его символов.
- Параметры:
-
str- измеряемаяString - Возвращает:
- ширину продвижения указанной
StringвFont, описываемом этим объектомFontMetrics. - Исключения:
-
NullPointerException- если str равно null. - См. также:
charsWidth
public int charsWidth(char[] data, int off, int len)
Font. Продвижение — это расстояние от самой левой до самой правой точки на базовой линии строки. Продвижение String не обязательно равно сумме продвижений его символов. Это эквивалентно измерению String символов в указанном диапазоне.- Параметры:
-
data- массив символов, который нужно измерить -
off- начальный смещение символов в массиве -
len- количество символов для измерения из массива - Возвращает:
- ширину продвижения подмассива указанного
charмассива в шрифте, описанном этим объектомFontMetrics. - Исключения:
-
NullPointerException- еслиdataравно null. -
IndexOutOfBoundsException- если аргументыoffиlenиндексируют символы за пределами границdataмассива. - См. также:
bytesWidth
public int bytesWidth(byte[] data, int off, int len)
Font. Продвижение — это расстояние от самой левой до самой правой точки на базовой линии строки. Продвижение String не обязательно равно сумме продвижений его символов. Это эквивалентно измерению String символов в указанном диапазоне.- Параметры:
-
data- массив байтов, который нужно измерить -
off- начальный смещение байтов в массиве -
len- количество байтов для измерения из массива - Возвращает:
- ширину продвижения подмассива указанного
byteмассива вFontописанном этим объектомFontMetrics. - Исключения:
-
NullPointerException- еслиdataравно null. -
IndexOutOfBoundsException- если аргументыoffиlenиндексируют байты за пределами границdataмассива. - См. также:
getWidths
public int[] getWidths()
Font. Продвижение — это расстояние от самой левой до самой правой точки на базовой линии символа. Обратите внимание, что продвижение String не обязательно равно сумме продвижений его символов.- Возвращает:
- массив, хранящий ширины продвижения символов в
Fontописанном этим объектомFontMetrics.
hasUniformLineMetrics
public boolean hasUniformLineMetrics()
Font однородные метрики строк. Композитный шрифт может состоять из нескольких разных шрифтов для покрытия различных наборов символов. В таких случаях объекты FontLineMetrics не являются однородными. Разные шрифты могут иметь разный подъем, спуск, метрики и т. д. Эта информация иногда необходима для измерения строк и перевода строк.- Возвращает:
-
trueесли шрифт имеет однородные метрики строк;falseв противном случае. - См. также:
getLineMetrics
public LineMetrics getLineMetrics(String str, Graphics context)
- Параметры:
-
str- указаннаяString -
context- указанный контекстGraphics - Возвращает:
- объект
LineMetricsсозданный с указаннымиStringиGraphicsконтекстом. - См. также:
getLineMetrics
public LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context)
- Параметры:
-
str- указаннаяString -
beginIndex- начальный смещениеstr -
limit- конечный смещениеstr -
context- указанныйGraphicsконтекст - Возвращает:
- объект
LineMetricsсозданный с указаннымиStringиGraphicsконтекстом. - См. также:
getLineMetrics
public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context)
LineMetrics для указанного массива символов в указанном контексте Graphics.- Параметры:
-
chars- указанный массив символов -
beginIndex- начальный смещениеchars -
limit- конечный смещениеchars -
context- указанныйGraphicsконтекст - Возвращает:
- объект
LineMetricsсозданный с указанным массивом символов иGraphicsконтекстом. - См. также:
getLineMetrics
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context)
LineMetrics для указанного CharacterIterator в указанном контексте Graphics контексте.- Параметры:
-
ci- указанныйCharacterIterator -
beginIndex- начальный смещение вci -
limit- конечный индексci -
context- указанныйGraphicsконтекст - Возвращает:
- объект
LineMetricsсозданный с указанными аргументами. - См. также:
getStringBounds
public Rectangle2D getStringBounds(String str, Graphics context)
String в указанном Graphics контексте. Границы используются для выравнивания String. Примечание: Возвращаемые границы находятся в координатах, относительных к базовой линии (см. class notes).
- Параметры:
-
str- указаннаяString -
context- указанныйGraphicsконтекст - Возвращает:
- объект
Rectangle2D, представляющий ограничивающую рамку указаннойStringв указанномGraphicsконтексте. - См. также:
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контексте. - См. также:
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контексте. - См. также:
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контексте. - См. также:
getMaxCharBounds
public Rectangle2D getMaxCharBounds(Graphics context)
Graphics контексте.- Параметры:
-
context- указанныйGraphicsконтекст - Возвращает:
- объект
Rectangle2D, представляющий ограничивающую рамку символа с максимальными границами. - См. также:
toString
public String toString()
FontMetrics в виде String.- Переопределяет:
-
toStringв классеObject - Возвращает:
- представление
Stringэтого объектаFontMetrics.
© 1993, 2021, 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/17/docs/api/java.desktop/java/awt/FontMetrics.html
getMaxDescent().