Класс 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.
- С момента:
- 1.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(String str,
int beginIndex,
int limit,
Graphics context) | Возвращает объект |
LineMetrics | getLineMetrics(String str,
Graphics context) | Возвращает объект |
LineMetrics | getLineMetrics(CharacterIterator ci,
int beginIndex,
int limit,
Graphics context) | Возвращает объект |
int | getMaxAdvance() | Получает максимальную ширину вывода любого символа в этом |
int | getMaxAscent() | Определяет максимальную восходящую часть |
Rectangle2D | getMaxCharBounds(Graphics context) | Возвращает пределы для символа с максимальными пределами в указанном контексте |
int | getMaxDecent() | Устарело. Начиная с версии JDK 1.1.1, заменено на getMaxDescent(). |
int | getMaxDescent() | Определяет максимальную нисходящую часть |
Rectangle2D | getStringBounds(char[] chars,
int beginIndex,
int limit,
Graphics context) | Возвращает пределы указанного массива символов в указанном контексте |
Rectangle2D | getStringBounds(String str,
int beginIndex,
int limit,
Graphics context) | Возвращает пределы указанного |
Rectangle2D | getStringBounds(String str,
Graphics context) | Возвращает пределы указанного |
Rectangle2D | getStringBounds(CharacterIterator ci,
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
Методы
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()
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.
© 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