Spec-Zone.ru › OpenJDK 8

Класс FontMetrics

  • java.lang.Object
    • java.awt.FontMetrics
Все реализованные интерфейсы:
Serializable

public abstract class FontMetrics
extends Object
implements Serializable

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

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

  • getAscent()
  • getLeading()
  • getMaxAdvance()
  • charWidth(char)
  • charsWidth(char[], int, int)

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

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

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

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

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

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

С момента:
JDK1.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(CharacterIterator ci, int beginIndex, int limit, Graphics context)

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

LineMetrics getLineMetrics(String str, Graphics context)

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

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

Возвращает объект LineMetrics для указанного String в указанном контексте 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(CharacterIterator ci, int beginIndex, int limit, Graphics context)

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

Rectangle2D getStringBounds(String str, Graphics context)

Возвращает границы указанного String в указанном контексте Graphics.

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

Возвращает границы указанного String в указанном контексте 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
См. также:
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.

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

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API