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