Spec-Zone.ru › OpenJDK 25

Класс Font

java.lang.Object
java.awt.Font
Все реализованные интерфейсы:
Serializable
Прямые известные подклассы:
FontUIResource
public class Font extends Object implements Serializable
Класс Font представляет шрифты, которые используются для визуального отображения текста. Шрифт предоставляет информацию, необходимую для преобразования последовательностей символов в последовательности глифов и отображения последовательностей глифов на объектах Graphics и Component.

Символы и глифы

Символ — это знак, который абстрактно представляет такой элемент, как буква, цифра или знак пунктуации. Например, 'g', LATIN SMALL LETTER G, — это символ.

Глиф — это форма, используемая для отображения символа или последовательности символов. В простых системах письма, таких как латиница, обычно один глиф представляет один символ. Однако в общем случае соответствие между символами и глифами не является взаимно однозначным. Например, символ «á» LATIN SMALL LETTER A WITH ACUTE может быть представлен двумя глифами: одним для «a» и одним для «´». С другой стороны, двухсимвольная строка "fi" может быть представлена одним глифом — лигатурой "fi". В сложных системах письма, таких как арабская или системы письма Южной и Юго-Восточной Азии, связь между символами и глифами может быть более сложной и включать выбор глифов с учетом контекста, а также перестановку глифов. Шрифт содержит набор глифов, необходимых для отображения выбранного набора символов, а также таблицы, необходимые для преобразования последовательностей символов в соответствующие последовательности глифов.

Физические и логические шрифты

Платформа Java различает два вида шрифтов: физические шрифты и логические шрифты.

Физические шрифты — это реальные библиотеки шрифтов, содержащие данные глифов и таблицы для преобразования последовательностей символов в последовательности глифов с использованием такой технологии шрифтов, как TrueType или PostScript Type 1. Все реализации платформы Java должны поддерживать шрифты TrueType; поддержка других технологий шрифтов зависит от реализации. Физические шрифты могут использовать такие имена, как Helvetica, Palatino, HonMincho, и множество других. Как правило, каждый физический шрифт поддерживает лишь ограниченный набор систем письма, например только латинские символы или только японские символы и Basic Latin. Набор доступных физических шрифтов различается в разных конфигурациях. Приложения, которым требуются определенные шрифты, могут включать их в свой состав и создавать экземпляры с помощью метода createFont.

Логические шрифты — это пять семейств шрифтов, определенных платформой Java и обязательных для поддержки в любой среде выполнения Java: Serif, SansSerif, Monospaced, Dialog и DialogInput. Эти логические шрифты не являются реальными библиотеками шрифтов. Вместо этого среда выполнения Java сопоставляет имена логических шрифтов с физическими шрифтами. Сопоставление зависит от реализации и обычно от локали, поэтому внешний вид и метрики этих шрифтов различаются. Как правило, каждому имени логического шрифта соответствует несколько физических шрифтов, чтобы обеспечить поддержку большого диапазона символов.

Компоненты AWT с пировой реализацией, такие как Label и TextField, могут использовать только логические шрифты.

Обсуждение относительных преимуществ и недостатков использования физических и логических шрифтов см. в разделе Физические и логические шрифты документа Учебные материалы по Java.

Начертания и имена шрифтов

У Font может быть много начертаний, например жирное, среднее, курсивное, готическое и обычное. Все эти начертания имеют схожий типографский дизайн.

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

Класс Font представляет экземпляр начертания из набора начертаний, доступных в системных ресурсах хост-системы. Например, Arial Bold и Courier Bold Italic — это начертания шрифтов. С одним начертанием шрифта может быть связано несколько объектов Font, различающихся размером, стилем, преобразованием и атрибутами шрифта.

Из-за ограничений платформы, например отсутствия подходящих платформенных шрифтов для реализации логического шрифта, глифы не всегда могут отображаться с запрошенными свойствами (например, шрифтом и стилем).

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

Font и TextAttribute

Font поддерживает большинство TextAttributes. Это делает некоторые операции, например отображение подчеркнутого текста, удобными, поскольку нет необходимости явно создавать объект TextLayout. Атрибуты можно задать для Font, создав его или получив на его основе новый с помощью Map значений TextAttribute.

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

  • FOREGROUND и BACKGROUND используют значения Paint. Подкласс Color сериализуем, а GradientPaint и TexturePaint — нет.
  • CHAR_REPLACEMENT использует значения GraphicAttribute. Подклассы ShapeGraphicAttribute и ImageGraphicAttribute не сериализуются.
  • INPUT_METHOD_HIGHLIGHT использует значения InputMethodHighlight, которые не сериализуются. См. InputMethodHighlight.

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

Конструктор на основе Map и API deriveFont игнорируют атрибут FONT, и Font его не сохраняет; если атрибут FONT может присутствовать, следует использовать статический метод getFont(Map). Дополнительную информацию см. в разделе TextAttribute.FONT.

Некоторые атрибуты увеличивают накладные расходы на отображение и могут вызывать выполнение компоновки. Если у Font есть такие атрибуты, метод hasLayoutAttributes() вернет true.

Примечание. Поворот шрифтов может приводить к повороту базовых линий текста. Чтобы учесть эту (редкую) возможность, в спецификациях API шрифтов указано, что они возвращают метрики и принимают параметры «в координатах относительно базовой линии». При таком представлении координата «x» соответствует продвижению вдоль базовой линии (положительное направление x направлено вперед вдоль базовой линии), а координата «y» — расстоянию вдоль перпендикуляра к базовой линии в точке «x» (положительное направление y отклонено на 90 градусов по часовой стрелке от вектора базовой линии). В API, для которых это особенно важно, явно указано, что они используют «координаты относительно базовой линии».

См. также:
  • Форма сериализации

Краткое описание полей

Модификатор и тип Поле Описание
static final int BOLD
Константа стиля bold.
static final int CENTER_BASELINE
Базовая линия, используемая в идеографических письменностях, таких как китайская, японская и корейская, при компоновке текста.
static final String DIALOG
Строковая константа, содержащая каноническое имя семейства логического шрифта "Dialog".
static final String DIALOG_INPUT
Строковая константа, содержащая каноническое имя семейства логического шрифта "DialogInput".
static final int HANGING_BASELINE
Базовая линия, используемая в деванагари и подобных письменностях при компоновке текста.
static final int ITALIC
Константа курсивного стиля.
static final int LAYOUT_LEFT_TO_RIGHT
Флаг для layoutGlyphVector, указывающий, что, согласно анализу Bidi, текст записан слева направо.
static final int LAYOUT_NO_LIMIT_CONTEXT
Флаг для layoutGlyphVector, указывающий, что текст в массиве символов после указанного предела не следует анализировать.
static final int LAYOUT_NO_START_CONTEXT
Флаг для layoutGlyphVector, указывающий, что текст в массиве символов перед указанным началом не следует анализировать.
static final int LAYOUT_RIGHT_TO_LEFT
Флаг для layoutGlyphVector, указывающий, что, согласно анализу Bidi, текст записан справа налево.
static final String MONOSPACED
Строковая константа, содержащая каноническое имя семейства логического шрифта "Monospaced".
protected String name
Логическое имя этого Font, переданное конструктору.
static final int PLAIN
Константа обычного стиля.
protected float pointSize
Размер этого Font в пунктах, заданный в float.
static final int ROMAN_BASELINE
Базовая линия, используемая в большинстве латинских письменностей при компоновке текста.
static final String SANS_SERIF
Строковая константа, содержащая каноническое имя семейства логического шрифта "SansSerif".
static final String SERIF
Строковая константа, содержащая каноническое имя семейства логического шрифта "Serif".
protected int size
Размер этого Font в пунктах, округленный до целого числа.
protected int style
Стиль этого Font, переданный конструктору.
static final int TRUETYPE_FONT
Обозначает ресурс шрифта типа TRUETYPE.
static final int TYPE1_FONT
Обозначает ресурс шрифта типа TYPE1.

Краткое описание конструкторов

Font(Font font)
Font(String name, int style, int size)
Font(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
Модификатор Конструктор Описание
protected
Создает новый Font из указанного font.
Создает новый Font с указанными именем, стилем и размером в пунктах.
Создает новый Font с указанными атрибутами.

Краткое описание методов

Модификатор и тип Метод Описание
boolean canDisplay(char c)
Проверяет, есть ли в этом Font глиф для указанного символа.
boolean canDisplay(int codePoint)
Проверяет, есть ли в этом Font глиф для указанного символа.
int canDisplayUpTo(char[] text, int start, int limit)
Указывает, может ли этот Font отображать символы в указанном text, начиная с start и заканчивая limit.
int canDisplayUpTo(String str)
Указывает, может ли этот Font отображать указанный String.
int canDisplayUpTo(CharacterIterator iter, int start, int limit)
Указывает, может ли этот Font отображать текст, заданный в iter, начиная с start и заканчивая limit.
static Font createFont(int fontFormat, File fontFile)
Возвращает новый Font, используя указанный тип шрифта и указанный файл шрифта.
static Font createFont(int fontFormat, InputStream fontStream)
Возвращает новый Font, используя указанный тип шрифта и входные данные.
static Font[] createFonts(File fontFile)
Возвращает новый массив объектов Font, декодированных из указанного файла.
static Font[] createFonts(InputStream fontStream)
Возвращает новый массив объектов Font, декодированных из указанного потока.
GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)
Создает GlyphVector, взаимно однозначно сопоставляя символы глифам на основе таблицы Unicode cmap в этом Font.
GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)
Создает GlyphVector, взаимно однозначно сопоставляя символы глифам на основе таблицы Unicode cmap в этом Font.
GlyphVector createGlyphVector(FontRenderContext frc, String str)
Создает GlyphVector, взаимно однозначно сопоставляя символы глифам на основе таблицы Unicode cmap в этом Font.
GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)
Создает GlyphVector, взаимно однозначно сопоставляя указанные символы глифам на основе таблицы Unicode cmap в этом Font.
static Font decode(String str)
Возвращает Font, описываемый аргументом str.
Font deriveFont(float size)
Создает новый объект Font, копируя текущий объект Font и задавая ему новый размер.
Font deriveFont(int style)
Создает новый объект Font, копируя текущий объект Font и задавая ему новый стиль.
Font deriveFont(int style, float size)
Создает новый объект Font, копируя этот объект Font и задавая ему новые стиль и размер.
Font deriveFont(int style, AffineTransform trans)
Создает новый объект Font, копируя этот объект Font и задавая ему новые стиль и преобразование.
Font deriveFont(AffineTransform trans)
Создает новый объект Font, копируя текущий объект Font и применяя к нему новое преобразование.
Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
Создает новый объект Font, копируя текущий объект Font и применяя к нему новый набор атрибутов шрифта.
boolean equals(Object obj)
Сравнивает этот объект Font с указанным Object.
Map<TextAttribute, ?> getAttributes()
Возвращает карту атрибутов шрифта, доступных в этом Font.
AttributedCharacterIterator.Attribute[] getAvailableAttributes()
Возвращает ключи всех атрибутов, поддерживаемых этим Font.
byte getBaselineFor(char c)
Возвращает базовую линию, подходящую для отображения этого символа.
String getFamily()
Возвращает имя семейства этого Font.
String getFamily(Locale l)
Возвращает имя семейства этого Font с учетом указанной локали.
static Font getFont(String nm)
Возвращает объект Font из списка системных свойств.
static Font getFont(String nm, Font font)
Получает указанный Font из списка системных свойств.
static Font getFont(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
Возвращает Font, соответствующий атрибутам.
String getFontName()
Возвращает имя начертания этого Font.
String getFontName(Locale l)
Возвращает имя начертания Font с учетом указанной локали.
float getItalicAngle()
Возвращает угол наклона этого Font.
LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)
Возвращает объект LineMetrics, созданный с указанными аргументами.
LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)
Возвращает объект LineMetrics, созданный с указанными аргументами.
LineMetrics getLineMetrics(String str, FontRenderContext frc)
Возвращает объект LineMetrics, созданный с указанными String и FontRenderContext.
LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
Возвращает объект LineMetrics, созданный с указанными аргументами.
Rectangle2D getMaxCharBounds(FontRenderContext frc)
Возвращает границы символа с максимальными границами, определенными в указанном FontRenderContext.
int getMissingGlyphCode()
Возвращает glyphCode, используемый, если в этом Font нет глифа для указанной кодовой точки Unicode.
String getName()
Возвращает логическое имя этого Font.
int getNumGlyphs()
Возвращает количество глифов в этом Font.
String getPSName()
Возвращает имя PostScript этого Font.
int getSize()
Возвращает размер этого Font в пунктах, округленный до целого числа.
float getSize2D()
Возвращает размер этого Font в пунктах в виде значения float.
Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)
Возвращает логические границы указанного массива символов в указанном FontRenderContext.
Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)
Возвращает логические границы указанного String в указанном FontRenderContext.
Rectangle2D getStringBounds(String str, FontRenderContext frc)
Возвращает логические границы указанного String в указанном FontRenderContext.
Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
Возвращает логические границы символов, индексированных в указанном CharacterIterator, в указанном FontRenderContext.
int getStyle()
Возвращает стиль этого Font.
AffineTransform getTransform()
Возвращает копию преобразования, связанного с этим Font.
int hashCode()
Возвращает хеш-код этого Font.
boolean hasLayoutAttributes()
Возвращает true, если этот Font содержит атрибуты, требующие дополнительной обработки при компоновке.
boolean hasUniformLineMetrics()
Проверяет, имеет ли этот Font единообразные метрики строки.
boolean isBold()
Указывает, имеет ли стиль этого объекта Font значение BOLD.
boolean isItalic()
Указывает, имеет ли стиль этого объекта Font значение ITALIC.
boolean isPlain()
Указывает, имеет ли стиль этого объекта Font значение PLAIN.
boolean isTransformed()
Указывает, имеет ли этот объект Font преобразование, влияющее на его размер помимо атрибута Size.
GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)
Возвращает новый объект GlyphVector, по возможности выполняя полную компоновку текста.
static boolean textRequiresLayout(char[] chars, int start, int end)
Возвращает true, если какая-либо часть указанного текста относится к сложной письменности, для правильного отображения которой при использовании drawString(String,int,int) и других методов отображения текста реализация должна выполнить обработку компоновки.
String toString()
Преобразует этот объект Font в представление String.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание полей

DIALOG

public static final String DIALOG
Строковая константа для канонического имени семейства логического шрифта "Dialog". Она полезна при создании Font, поскольку позволяет проверить имя во время компиляции.
Начиная с:
1.6
См. также:
  • Значения констант полей

DIALOG_INPUT

public static final String DIALOG_INPUT
Строковая константа для канонического имени семейства логического шрифта "DialogInput". Она полезна при создании Font, поскольку позволяет проверить имя во время компиляции.
Начиная с:
1.6
См. также:
  • Значения констант полей

SANS_SERIF

public static final String SANS_SERIF
Строковая константа для канонического имени семейства логического шрифта "SansSerif". Она полезна при создании Font, поскольку позволяет проверить имя во время компиляции.
Начиная с:
1.6
См. также:
  • Значения констант полей

SERIF

public static final String SERIF
Строковая константа для канонического имени семейства логического шрифта "Serif". Она полезна при создании Font, поскольку позволяет проверить имя во время компиляции.
Начиная с:
1.6
См. также:
  • Значения констант полей

MONOSPACED

public static final String MONOSPACED
Строковая константа для канонического имени семейства логического шрифта "Monospaced". Она полезна при создании Font, поскольку позволяет проверить имя во время компиляции.
Начиная с:
1.6
См. также:
  • Значения констант полей

PLAIN

public static final int PLAIN
Константа обычного начертания.
См. также:
  • Значения констант полей

BOLD

public static final int BOLD
Константа полужирного начертания. Ее можно сочетать с другими константами начертания (кроме PLAIN), чтобы получить смешанные начертания.
См. также:
  • Значения констант полей

ITALIC

public static final int ITALIC
Константа курсивного начертания. Ее можно сочетать с другими константами начертания (кроме PLAIN), чтобы получить смешанные начертания.
См. также:
  • Значения констант полей

ROMAN_BASELINE

public static final int ROMAN_BASELINE
Базовая линия, используемая при размещении текста в большинстве романских письменностей.
См. также:
  • Значения констант полей

CENTER_BASELINE

public static final int CENTER_BASELINE
Базовая линия, используемая при размещении текста в идеографических письменностях, таких как китайская, японская и корейская.
См. также:
  • Значения констант полей

HANGING_BASELINE

public static final int HANGING_BASELINE
Базовая линия, используемая при размещении текста в деванагари и схожих письменностях.
См. также:
  • Значения констант полей

TRUETYPE_FONT

public static final int TRUETYPE_FONT
Обозначает ресурс шрифта типа TRUETYPE. Используется для указания ресурса шрифта TrueType методу createFont(int, InputStream). Формат TrueType был расширен до формата OpenType, который добавляет поддержку шрифтов с контурами PostScript. Поэтому этот тег ссылается как на такие шрифты, так и на шрифты с контурами TrueType.
Начиная с:
1.3
См. также:
  • Значения констант полей

TYPE1_FONT

public static final int TYPE1_FONT
Обозначает ресурс шрифта типа TYPE1. Используется для указания ресурса шрифта Type1 методу createFont(int, InputStream).
Начиная с:
1.5
См. также:
  • Значения констант полей

name

protected String name
Логическое имя этого Font, переданное конструктору.
Начиная с:
1.0
См. также:
  • getName()

style

protected int style
Начертание этого Font, переданное конструктору. Начертанием может быть PLAIN, BOLD, ITALIC или BOLD+ITALIC.
Начиная с:
1.0
См. также:
  • getStyle()

size

protected int size
Размер этого Font в пунктах, округленный до целого числа.
Начиная с:
1.0
См. также:
  • getSize()

pointSize

protected float pointSize
Размер этого Font в пунктах, заданный как float.
См. также:
  • getSize()
  • getSize2D()

LAYOUT_LEFT_TO_RIGHT

public static final int LAYOUT_LEFT_TO_RIGHT
Флаг для layoutGlyphVector, указывающий, что текст направлен слева направо согласно анализу Bidi.
См. также:
  • Значения констант полей

LAYOUT_RIGHT_TO_LEFT

public static final int LAYOUT_RIGHT_TO_LEFT
Флаг для layoutGlyphVector, указывающий, что текст направлен справа налево согласно анализу Bidi.
См. также:
  • Значения констант полей

LAYOUT_NO_START_CONTEXT

public static final int LAYOUT_NO_START_CONTEXT
Флаг для layoutGlyphVector, указывающий, что текст в массиве char до указанного начала не следует анализировать.
См. также:
  • Значения констант полей

LAYOUT_NO_LIMIT_CONTEXT

public static final int LAYOUT_NO_LIMIT_CONTEXT
Флаг для layoutGlyphVector, указывающий, что текст в массиве char после указанного предела не следует анализировать.
См. также:
  • Значения констант полей

Подробное описание конструкторов

Font

public Font(String name, int style, int size)
Создает новый Font из указанного имени, начертания и размера в пунктах.

Имя шрифта может быть названием гарнитуры или названием семейства шрифтов. Оно используется вместе с начертанием для выбора подходящей гарнитуры. Если указано имя семейства шрифтов, аргумент начертания используется для выбора наиболее подходящей гарнитуры из семейства. Если указано название гарнитуры, начертание гарнитуры объединяется с аргументом начертания, чтобы найти наиболее подходящий шрифт из того же семейства. Например, если имя гарнитуры "Arial Bold" указано с начертанием Font.ITALIC, система шрифтов ищет гарнитуру семейства "Arial" с полужирным курсивным начертанием и может связать экземпляр шрифта с физической гарнитурой "Arial Bold Italic". Аргумент начертания объединяется с указанным начертанием гарнитуры, а не добавляется к нему и не вычитается из него. Это означает, что указание полужирной гарнитуры и полужирного начертания не делает шрифт вдвойне полужирным, а указание полужирной гарнитуры и обычного начертания не делает шрифт светлее.

Если гарнитуру с запрошенным начертанием найти не удается, система шрифтов может применить алгоритмическое форматирование для достижения требуемого начертания. Например, если запрошено ITALIC, но курсивная гарнитура недоступна, символы обычной гарнитуры могут быть алгоритмически наклонены.

Поиск имени шрифта нечувствителен к регистру и выполняется с использованием правил преобразования регистра для локали США.

Если параметр name представляет собой не логический шрифт, то есть интерпретируется как физическая гарнитура или семейство шрифтов, и реализация не может сопоставить его с физическим шрифтом или совместимой альтернативой, система шрифтов сопоставит экземпляр Font со шрифтом "Dialog". Например, семейство, возвращаемое методом getFamily, будет иметь значение "Dialog".

Параметры:
name — имя шрифта. Это может быть названием гарнитуры или семейства шрифтов, а также может представлять логический или физический шрифт, найденный в этой GraphicsEnvironment. Имена семейств логических шрифтов: Dialog, DialogInput, Monospaced, Serif или SansSerif. Для всех этих имен определены предварительно заданные строковые константы, например, DIALOG. Если name имеет значение null, логическое имя шрифта нового Font, возвращаемое методом getName(), устанавливается равным имени "Default".
style — константа начертания для Font. Аргумент начертания представляет собой целочисленную битовую маску, которая может иметь значение PLAIN или быть побитовым объединением BOLD и/или ITALIC (например, ITALIC или BOLD|ITALIC). Если аргумент начертания не соответствует одной из ожидаемых целочисленных битовых масок, для начертания устанавливается значение PLAIN.
size — размер Font в пунктах
Начиная с:
1.0
См. также:
  • GraphicsEnvironment.getAllFonts()
  • GraphicsEnvironment.getAvailableFontFamilyNames()

Font

public Font(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
Создает новый Font с указанными атрибутами. Распознаются только ключи, определенные в TextAttribute. Кроме того, атрибут FONT этим конструктором не распознается (см. getAvailableAttributes()). На новый Font влияют только атрибуты со значениями допустимых типов.

Если attributes имеет значение null, новый Font инициализируется значениями по умолчанию.

Параметры:
attributes — атрибуты, назначаемые новому Font, или null
См. также:
  • TextAttribute

Font

protected Font(Font font)
Создает новый Font из указанного font. Этот конструктор предназначен для использования подклассами.
Параметры:
font — источник, из которого создается этот Font.
Исключения:
NullPointerException — если font равен null
Начиная с:
1.6

Подробное описание методов

textRequiresLayout

public static boolean textRequiresLayout(char[] chars, int start, int end)
Возвращает true, если какая-либо часть указанного текста относится к сложной письменности, для которой реализации потребуется выполнить обработку макета, чтобы корректно отобразить текст при использовании drawString(String,int,int) и других методов отображения текста. Для измерения текста может потребоваться такая же дополнительная обработка. Индексы start и end позволяют приложению запросить проверку только части текста. Индекс последнего проверяемого символа равен "end-1", то есть запрос на проверку всего массива будет иметь вид
Font.textRequiresLayout(chars, 0, chars.length);
. Эта информация может быть полезна приложению в коде, чувствительном к производительности.

Обратите внимание: даже если этот метод возвращает false, при использовании с любым Font обработка макета всё равно может быть вызвана, если метод hasLayoutAttributes() возвращает true. Поэтому для конкретного шрифта необходимо обратиться к этому методу, чтобы получить результат с учетом атрибутов шрифта.

Параметры:
chars — текст.
start — индекс первого проверяемого символа.
end — конечный индекс, не включаемый в диапазон.
Возвращает:
true, если для указанного текста требуется специальная обработка макета.
Исключения:
NullPointerException — если chars равен null.
ArrayIndexOutOfBoundsException — если start отрицателен или end больше длины массива chars.
Начиная с:
9

getFont

public static Font getFont(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
Возвращает Font, соответствующий атрибутам. Если attributes содержит атрибут FONT с допустимым значением типа Font, он будет объединен с остальными атрибутами. Дополнительные сведения см. в разделе TextAttribute.FONT.
Параметры:
attributes — атрибуты, назначаемые новому Font
Возвращает:
новый Font, созданный с указанными атрибутами
Исключения:
NullPointerException — если attributes равен null.
Начиная с:
1.2
См. также:
  • TextAttribute

createFonts

public static Font[] createFonts(InputStream fontStream) throws FontFormatException, IOException
Возвращает новый массив Font, декодированных из указанного потока. Возвращенный массив Font[] содержит как минимум один элемент.

Эта версия метода createFont(int, InputStream) предназначена специально для поддержки источников шрифтов, представляющих собой коллекцию шрифтов TrueType/OpenType, и позволяет возвращать все отдельные шрифты из этой коллекции. Поэтому метод выбрасывает FontFormatException, если источник данных не содержит хотя бы одного шрифта TrueType/OpenType. Это же исключение выбрасывается, если в каком-либо шрифте коллекции отсутствуют необходимые таблицы шрифта.

Условие «как минимум один» позволяет потоку представлять один шрифт OpenType/TrueType, то есть поток не обязательно должен содержать коллекцию. Каждый элемент Font возвращаемого массива создается с размером 1 пункт и начертанием PLAIN. Затем этот базовый шрифт можно использовать с методами deriveFont этого класса для создания новых объектов Font с различными размерами, начертаниями, преобразованиями и функциями шрифта.

Этот метод не закрывает InputStream.

Чтобы каждый Font был доступен конструкторам Font, его необходимо зарегистрировать в GraphicsEnvironment, вызвав registerFont(Font).

Параметры:
fontStream — объект InputStream, представляющий входные данные для шрифта или коллекции шрифтов.
Возвращает:
новый Font[].
Исключения:
FontFormatException — если данные fontStream не содержат необходимых таблиц шрифта для какого-либо элемента коллекции или если не содержат ни одного шрифта.
IOException — если fontStream не удается полностью прочитать.
Начиная с:
9
См. также:
  • GraphicsEnvironment.registerFont(Font)

createFonts

public static Font[] createFonts(File fontFile) throws FontFormatException, IOException
Возвращает новый массив Font, декодированных из указанного файла. Возвращенный массив Font[] содержит как минимум один элемент.

Эта версия метода createFont(int, File) предназначена специально для поддержки источников шрифтов, представляющих собой коллекцию шрифтов TrueType/OpenType, и позволяет возвращать все отдельные шрифты из этой коллекции. Поэтому метод выбрасывает FontFormatException, если источник данных не содержит хотя бы одного шрифта TrueType/OpenType. Это же исключение выбрасывается, если в каком-либо шрифте коллекции отсутствуют необходимые таблицы шрифта.

Условие «как минимум один» позволяет потоку представлять один шрифт OpenType/TrueType, то есть поток не обязательно должен содержать коллекцию. Каждый элемент Font возвращаемого массива создается с размером 1 пункт и начертанием PLAIN. Затем этот базовый шрифт можно использовать с методами deriveFont этого класса для создания новых объектов Font с различными размерами, начертаниями, преобразованиями и функциями шрифта.

Чтобы каждый Font был доступен конструкторам Font, его необходимо зарегистрировать в GraphicsEnvironment, вызвав registerFont(Font).

Параметры:
fontFile — объект File, содержащий входные данные для шрифта или коллекции шрифтов.
Возвращает:
новый Font[].
Исключения:
FontFormatException — если File не содержит необходимых таблиц шрифта для какого-либо элемента коллекции или если не содержит ни одного шрифта.
IOException — если fontFile не удается прочитать.
Начиная с:
9
См. также:
  • GraphicsEnvironment.registerFont(Font)

createFont

public static Font createFont(int fontFormat, InputStream fontStream) throws FontFormatException, IOException
Возвращает новый Font, используя указанный тип шрифта и входные данные. Новый Font создается с размером 1 пункт и начертанием PLAIN. Затем этот базовый шрифт можно использовать с методами deriveFont этого класса для создания новых объектов Font с различными размерами, начертаниями, преобразованиями и функциями шрифта. Этот метод не закрывает InputStream.

Чтобы сделать Font доступным конструкторам Font, возвращенный Font необходимо зарегистрировать в GraphicsEnvironment, вызвав registerFont(Font).

Параметры:
fontFormat — тип Font: TRUETYPE_FONT, если указан ресурс TrueType, или TYPE1_FONT, если указан ресурс Type 1.
fontStream — объект InputStream, представляющий входные данные для шрифта.
Возвращает:
новый Font, созданный с указанным типом шрифта.
Исключения:
IllegalArgumentException — если fontFormat не является ни TRUETYPE_FONT, ни TYPE1_FONT.
FontFormatException — если данные fontStream не содержат необходимых таблиц шрифта для указанного формата.
IOException — если fontStream не удается полностью прочитать.
Начиная с:
1.3
См. также:
  • GraphicsEnvironment.registerFont(Font)

createFont

public static Font createFont(int fontFormat, File fontFile) throws FontFormatException, IOException
Возвращает новый Font, используя указанный тип шрифта и указанный файл шрифта. Новый Font создается с размером 1 пункт и начертанием PLAIN. Затем этот базовый шрифт можно использовать с методами deriveFont этого класса для создания новых объектов Font с различными размерами, начертаниями, преобразованиями и функциями шрифта.
Параметры:
fontFormat — тип Font: TRUETYPE_FONT, если указан ресурс TrueType, или TYPE1_FONT, если указан ресурс Type 1. Пока возвращенный шрифт или производные от него шрифты используются, реализация может продолжать обращаться к fontFile для получения данных шрифта. Поэтому результаты не определены, если файл изменен или становится недоступным.

Чтобы сделать Font доступным конструкторам Font, возвращенный Font необходимо зарегистрировать в GraphicsEnvironment, вызвав registerFont(Font).

fontFile — объект File, представляющий входные данные для шрифта.
Возвращает:
новый Font, созданный с указанным типом шрифта.
Исключения:
IllegalArgumentException — если fontFormat не является ни TRUETYPE_FONT, ни TYPE1_FONT.
NullPointerException — если fontFile равен null.
IOException — если fontFile не удается прочитать.
FontFormatException — если fontFile не содержит необходимых таблиц шрифта для указанного формата.
Начиная с:
1.5
См. также:
  • GraphicsEnvironment.registerFont(Font)

getTransform

public AffineTransform getTransform()
Возвращает копию преобразования, связанного с этим Font. Это преобразование не обязательно совпадает с тем, которое использовалось для создания шрифта. Если для шрифта применено алгоритмическое надстрочное начертание или корректировка ширины, это будет учтено в возвращенном AffineTransform.

Обычно шрифты не преобразуются. Как правило, клиентам следует сначала вызвать isTransformed() и вызывать этот метод, только если isTransformed возвращает true.

Возвращает:
объект AffineTransform, представляющий атрибут преобразования этого объекта Font.

getFamily

public String getFamily()
Возвращает имя семейства этого Font.

Имя семейства шрифта зависит от конкретного шрифта. Два шрифта, например Helvetica Italic и Helvetica Bold, имеют одинаковое имя семейства — Helvetica, но названия их гарнитур различаются: Helvetica Bold и Helvetica Italic. Список доступных имен семейств можно получить с помощью метода GraphicsEnvironment.getAvailableFontFamilyNames().

Используйте getName, чтобы получить логическое имя шрифта. Используйте getFontName, чтобы получить название гарнитуры шрифта.

Возвращает:
объект String, представляющий имя семейства этого Font.
Начиная с:
1.1
См. также:
  • getName()
  • getFontName()

getFamily

public String getFamily(Locale l)
Возвращает имя семейства этого Font, локализованное для указанной локали.

Имя семейства шрифта зависит от конкретного шрифта. Два шрифта, например Helvetica Italic и Helvetica Bold, имеют одинаковое имя семейства — Helvetica, но названия их гарнитур различаются: Helvetica Bold и Helvetica Italic. Список доступных имен семейств можно получить с помощью метода GraphicsEnvironment.getAvailableFontFamilyNames().

Используйте getFontName, чтобы получить название гарнитуры шрифта.

Параметры:
l — локаль, для которой нужно получить имя семейства
Возвращает:
объект String, представляющий имя семейства шрифта, локализованное для указанной локали.
Начиная с:
1.2
См. также:
  • getFontName()
  • Locale

getPSName

public String getPSName()
Возвращает имя PostScript этого Font. Используйте getFamily, чтобы получить имя семейства шрифта. Используйте getFontName, чтобы получить имя начертания шрифта.
Возвращает:
значение String, представляющее имя PostScript этого Font.
Начиная с:
1.2

getName

public String getName()
Возвращает логическое имя этого Font. Используйте getFamily, чтобы получить имя семейства шрифта. Используйте getFontName, чтобы получить имя начертания шрифта.
Возвращает:
значение String, представляющее логическое имя этого Font.
Начиная с:
1.0
См. также:
  • getFamily()
  • getFontName()

getFontName

public String getFontName()
Возвращает имя начертания этого Font. Например, в качестве имени начертания может быть возвращено Helvetica Bold. Используйте getFamily, чтобы получить имя семейства шрифта. Используйте getName, чтобы получить логическое имя шрифта.
Возвращает:
значение String, представляющее имя начертания этого Font.
Начиная с:
1.2
См. также:
  • getFamily()
  • getName()

getFontName

public String getFontName(Locale l)
Возвращает имя начертания Font, локализованное для указанной локали. Например, в качестве имени начертания может быть возвращено Helvetica Fett. Используйте getFamily, чтобы получить имя семейства шрифта.
Параметры:
l — локаль, для которой нужно получить имя начертания
Возвращает:
значение String, представляющее имя начертания, локализованное для указанной локали.
См. также:
  • getFamily()
  • Locale

getStyle

public int getStyle()
Возвращает стиль этого Font. Стилем может быть PLAIN, BOLD, ITALIC или BOLD+ITALIC.
Возвращает:
стиль этого Font
Начиная с:
1.0
См. также:
  • isPlain()
  • isBold()
  • isItalic()

getSize

public int getSize()
Возвращает размер этого Font в пунктах, округлённый до целого числа. Большинству пользователей знакомо понятие размера в пунктах, используемого для указания размера глифов шрифта. Этот размер в пунктах определяет расстояние от базовой линии одной строки до базовой линии следующей строки в документе с одинарным межстрочным интервалом. Размер в пунктах основан на типографских пунктах, приблизительно равных 1/72 дюйма.

В API Java(tm)2D принято считать, что один пункт эквивалентен одной единице в пользовательских координатах. При использовании нормализующего преобразования для перевода координат пользовательского пространства в координаты пространства устройства 72 единицы пользовательского пространства равны 1 дюйму в пространстве устройства. В этом случае один пункт равен 1/72 дюйма.

Возвращает:
размер этого Font в пунктах, выраженный в единицах 1/72 дюйма.
Начиная с:
1.0
См. также:
  • getSize2D()
  • GraphicsConfiguration.getDefaultTransform()
  • GraphicsConfiguration.getNormalizingTransform()

getSize2D

public float getSize2D()
Возвращает размер этого Font в пунктах в виде значения float.
Возвращает:
размер этого Font в пунктах в виде значения float.
Начиная с:
1.2
См. также:
  • getSize()

isPlain

public boolean isPlain()
Указывает, имеет ли стиль этого объекта Font значение PLAIN.
Возвращает:
true, если этот Font имеет стиль PLAIN; в противном случае — false.
Начиная с:
1.0
См. также:
  • getStyle()

isBold

public boolean isBold()
Указывает, имеет ли стиль этого объекта Font значение BOLD.
Возвращает:
true, если стиль этого объекта Font имеет значение BOLD; в противном случае — false.
Начиная с:
1.0
См. также:
  • getStyle()

isItalic

public boolean isItalic()
Указывает, имеет ли стиль этого объекта Font значение ITALIC.
Возвращает:
true, если стиль этого объекта Font имеет значение ITALIC; в противном случае — false.
Начиная с:
1.0
См. также:
  • getStyle()

isTransformed

public boolean isTransformed()
Указывает, имеет ли этот объект Font преобразование, влияющее на его размер в дополнение к атрибуту Size.
Возвращает:
true, если этот объект Font имеет атрибут AffineTransform, отличный от тождественного. В противном случае — false.
Начиная с:
1.4
См. также:
  • getTransform()

hasLayoutAttributes

public boolean hasLayoutAttributes()
Возвращает true, если этот Font содержит атрибуты, требующие дополнительной обработки компоновки.
Возвращает:
true, если шрифт содержит атрибуты компоновки
Начиная с:
1.6

getFont

public static Font getFont(String nm)
Возвращает объект Font из списка системных свойств. nm рассматривается как имя системного свойства, значение которого требуется получить. Затем значение String этого свойства интерпретируется как объект Font в соответствии со спецификацией Font.decode(String) Если указанное свойство не найдено, вместо него возвращается null.
Параметры:
nm — имя свойства
Возвращает:
объект Font, описываемый именем свойства, или null, если такого свойства нет.
Выбрасывает:
NullPointerException — если nm равно null.
Начиная с:
1.2
См. также:
  • decode(String)

decode

public static Font decode(String str)
Возвращает Font, описываемый аргументом str. Чтобы гарантировать, что этот метод вернёт нужный Font, задайте параметр str одним из следующих способов:
  • fontname-style-pointsize
  • fontname-pointsize
  • fontname-style
  • fontname
  • fontname style pointsize
  • fontname pointsize
  • fontname style
  • fontname
где style — одна из четырёх строк без учёта регистра: "PLAIN", "BOLD", "BOLDITALIC" или "ITALIC", а pointsize — положительное целое десятичное число, представляющее размер в пунктах. Например, чтобы получить шрифт Arial, полужирный, размером 18 пунктов, вызовите этот метод со значением "Arial-BOLD-18". Это эквивалентно вызову конструктора Font: new Font("Arial", Font.BOLD, 18);; значения интерпретируются в соответствии со спецификацией этого конструктора.

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

Если поле имени стиля не совпадает ни с одной из допустимых строк стиля, оно интерпретируется как часть имени шрифта, а используется стиль по умолчанию.

Для разделения полей во входных данных можно использовать только один из символов: « » или «-». Выбирается разделитель, расположенный ближе всего к концу строки и отделяющий допустимый размер в пунктах или допустимое имя стиля от остальной части строки. Пустые поля размера в пунктах и стиля считаются допустимыми и получают значения по умолчанию для соответствующих полей.

Некоторые имена шрифтов могут содержать символы-разделители « » или «-». Если str состоит не из трёх компонентов, например если в str отсутствуют поля style или pointsize, и fontname также содержит символ, определённый как символ-разделитель, то эти символы, предназначенные для включения в fontname, могут быть интерпретированы как разделители, из-за чего имя шрифта может распознаться неправильно.

Размер по умолчанию — 12, стиль по умолчанию — PLAIN. Если str не задаёт допустимый размер, возвращаемый Font имеет размер 12. Если str не задаёт допустимый стиль, возвращаемый Font имеет стиль PLAIN. Если в аргументе str не указано допустимое имя шрифта, этот метод вернёт шрифт с именем семейства "Dialog". Чтобы узнать, какие имена семейств шрифтов доступны в вашей системе, используйте метод GraphicsEnvironment.getAvailableFontFamilyNames(). Если str равно null, возвращается новый Font с именем семейства "Dialog", размером 12 и стилем PLAIN.

Параметры:
str — имя шрифта или null
Возвращает:
объект Font, описываемый значением str, или новый шрифт Font по умолчанию, если str равно null.
Начиная с:
1.1
См. также:
  • getFamily()

getFont

public static Font getFont(String nm, Font font)
Получает указанный Font из списка системных свойств. Как и в методе getProperty класса System, первый аргумент рассматривается как имя системного свойства, значение которого требуется получить. Затем значение String этого свойства интерпретируется как объект Font.

Значение свойства должно иметь один из форматов, принимаемых методом Font.decode(String). Если указанное свойство не найдено, вместо него возвращается аргумент font.

Параметры:
nm — имя свойства без учёта регистра
font — шрифт Font по умолчанию, возвращаемый, если свойство nm не определено
Возвращает:
значение свойства Font.
Выбрасывает:
NullPointerException — если nm равно null.
См. также:
  • decode(String)

hashCode

public int hashCode()
Возвращает хеш-код этого Font.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода этого Font.
Начиная с:
1.0
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

equals

public boolean equals(Object obj)
Сравнивает этот объект Font с указанным Object.
Переопределяет:
equals в классе Object
Параметры:
obj — Object для сравнения
Возвращает:
true, если объекты одинаковы или если аргумент является объектом Font, описывающим тот же шрифт, что и этот объект; в противном случае — false.
Начиная с:
1.0
См. также:
  • Object.hashCode()
  • HashMap

toString

public String toString()
Преобразует этот объект Font в представление String.
Переопределяет:
toString в классе Object
Возвращает:
представление String этого объекта Font.
Начиная с:
1.0

getNumGlyphs

public int getNumGlyphs()
Возвращает количество глифов в этом Font. Коды глифов для этого Font находятся в диапазоне от 0 до getNumGlyphs() - 1.
Возвращает:
количество глифов в этом Font.
Начиная с:
1.2

getMissingGlyphCode

public int getMissingGlyphCode()
Возвращает glyphCode, используемый, если в этом Font отсутствует глиф для указанной кодовой точки Unicode.
Возвращает:
glyphCode этого Font.
Начиная с:
1.2

getBaselineFor

public byte getBaselineFor(char c)
Возвращает базовую линию, подходящую для отображения этого символа.

Шрифты большого размера могут поддерживать разные системы письма, и в каждой системе может использоваться своя базовая линия. Аргумент-символ определяет используемую систему письма. Клиентам не следует предполагать, что для всех символов используется одна и та же базовая линия.

Параметры:
c — символ, используемый для определения системы письма
Возвращает:
базовую линию, подходящую для указанного символа.
Начиная с:
1.2
См. также:
  • LineMetrics.getBaselineOffsets()
  • ROMAN_BASELINE
  • CENTER_BASELINE
  • HANGING_BASELINE

getAttributes

public Map<TextAttribute, ?> getAttributes()
Возвращает карту атрибутов шрифта, доступных в этом Font. К атрибутам относятся, например, лигатуры и подстановка глифов.
Возвращает:
карту атрибутов этого Font.

getAvailableAttributes

public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
Возвращает ключи всех атрибутов, поддерживаемых этим Font. Эти атрибуты можно использовать для создания производных шрифтов.
Возвращает:
массив, содержащий ключи всех атрибутов, поддерживаемых этим Font.
Начиная с:
1.2

deriveFont

public Font deriveFont(int style, float size)
Создаёт новый объект Font, копируя этот объект Font и применяя новый стиль и размер.
Параметры:
style — стиль нового Font
size — размер нового Font
Возвращает:
новый объект Font.
Начиная с:
1.2

deriveFont

public Font deriveFont(int style, AffineTransform trans)
Создаёт новый объект Font, копируя этот объект Font и применяя новый стиль и преобразование.
Параметры:
style — стиль нового Font
trans — AffineTransform, связанное с новым Font
Возвращает:
новый объект Font.
Выбрасывает:
IllegalArgumentException — если trans равно null
Начиная с:
1.2

deriveFont

public Font deriveFont(float size)
Создаёт новый объект Font, копируя текущий объект Font и задавая ему новый размер.
Параметры:
size — размер нового Font.
Возвращает:
новый объект Font.
Начиная с:
1.2

deriveFont

public Font deriveFont(AffineTransform trans)
Создаёт новый объект Font, копируя текущий объект Font и применяя к нему новое преобразование.
Параметры:
trans — AffineTransform, связанное с новым Font
Возвращает:
новый объект Font.
Выбрасывает:
IllegalArgumentException — если trans равно null
Начиная с:
1.2

deriveFont

public Font deriveFont(int style)
Создаёт новый объект Font, копируя текущий объект Font и применяя к нему новый стиль.
Параметры:
style — стиль нового Font
Возвращает:
новый объект Font.
Начиная с:
1.2

deriveFont

public Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
Создаёт новый объект Font, копируя текущий объект Font и применяя к нему новый набор атрибутов шрифта.
Параметры:
attributes — карта атрибутов, включённых для нового Font
Возвращает:
новый объект Font.
Начиная с:
1.2

canDisplay

public boolean canDisplay(char c)
Проверяет, есть ли в этом Font глиф для указанного символа.

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

Параметры:
c — символ, для которого требуется глиф
Возвращает:
true, если в этом Font есть глиф для данного символа; в противном случае — false.
Начиная с:
1.2

canDisplay

public boolean canDisplay(int codePoint)
Проверяет, есть ли в этом Font глиф для указанного символа.
Параметры:
codePoint — символ (кодовая точка Unicode), для которого требуется глиф.
Возвращает:
true, если в этом Font есть глиф для данного символа; в противном случае — false.
Выбрасывает:
IllegalArgumentException — если кодовая точка не является допустимой кодовой точкой Unicode.
Начиная с:
1.5
См. также:
  • Character.isValidCodePoint(int)

canDisplayUpTo

public int canDisplayUpTo(String str)
Указывает, может ли этот Font отображать указанную String. Для строк в кодировке Unicode важно знать, может ли конкретный шрифт отображать данную строку. Этот метод возвращает смещение в String str, соответствующее первому символу, который этот Font не может отобразить без использования кода отсутствующего глифа. Если Font может отображать все символы, возвращается -1.
Параметры:
str — объект String
Возвращает:
смещение в str, указывающее на первый символ в str, который этот Font не может отобразить; или -1, если этот Font может отображать все символы в str.
Начиная с:
1.2

canDisplayUpTo

public int canDisplayUpTo(char[] text, int start, int limit)
Указывает, может ли этот Font отображать символы в указанном text, начиная с start и заканчивая limit. Этот метод является удобной перегрузкой.
Параметры:
text — указанный массив значений char
start — указанное начальное смещение (в charах) в указанном массиве значений char
limit — указанное конечное смещение (в charах) в указанном массиве значений char
Возвращает:
смещение в text, указывающее на первый символ в text, который этот Font не может отобразить; или -1, если этот Font может отображать все символы в text.
Начиная с:
1.2

canDisplayUpTo

public int canDisplayUpTo(CharacterIterator iter, int start, int limit)
Указывает, может ли этот Font отображать текст, заданный объектом iter, начиная с start и заканчивая limit.
Параметры:
iter — объект CharacterIterator
start — указанное начальное смещение в указанном CharacterIterator.
limit — указанное конечное смещение в указанном CharacterIterator.
Возвращает:
смещение в iter, указывающее на первый символ в iter, который этот Font не может отобразить; или -1, если этот Font может отображать все символы в iter.
Начиная с:
1.2

getItalicAngle

public float getItalicAngle()
Возвращает угол наклона этого Font. Угол наклона — это обратный наклон курсора, который лучше всего соответствует начертанию этого Font.
Возвращает:
угол наклона стиля ITALIC этого Font.
См. также:
  • TextAttribute.POSTURE

hasUniformLineMetrics

public boolean hasUniformLineMetrics()
Проверяет, имеет ли этот Font единообразные метрики строк. Логический Font может быть составным шрифтом, то есть состоять из нескольких физических шрифтов, охватывающих разные диапазоны кодов. Каждый из этих шрифтов может иметь разные LineMetrics. Если логический Font состоит из одного шрифта, метрики будут единообразными.
Возвращает:
true, если этот Font имеет единообразные метрики строк; в противном случае — false.

getLineMetrics

public LineMetrics getLineMetrics(String str, FontRenderContext frc)
Возвращает объект LineMetrics, созданный с использованием указанного String и FontRenderContext.
Параметры:
str — указанный String
frc — указанный FontRenderContext
Возвращает:
объект LineMetrics, созданный с использованием указанного String и FontRenderContext.

getLineMetrics

public LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)
Возвращает объект LineMetrics, созданный с использованием указанных аргументов.
Параметры:
str — указанный String
beginIndex — начальное смещение str
limit — конечное смещение str
frc — указанный FontRenderContext
Возвращает:
объект LineMetrics, созданный с использованием указанных аргументов.

getLineMetrics

public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)
Возвращает объект LineMetrics, созданный с указанными аргументами.
Параметры:
chars — массив символов
beginIndex — начальное смещение chars
limit — конечное смещение chars
frc — указанный FontRenderContext
Возвращает:
объект LineMetrics, созданный с указанными аргументами.

getLineMetrics

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

getStringBounds

public Rectangle2D getStringBounds(String str, FontRenderContext frc)
Возвращает логические границы указанного String в указанном FontRenderContext. Логические границы включают начало координат, асцент, ширину и высоту, в которую входит интерлиньяж. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и некоторых шрифтах диакритические знаки могут располагаться выше верхней границы асцента или ниже нижней границы децента. Чтобы получить визуальную ограничивающую рамку, охватывающую весь текст, используйте метод getBounds класса TextLayout.

Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).

Параметры:
str — указанный String
frc — указанный FontRenderContext
Возвращает:
Rectangle2D, представляющий ограничивающую рамку указанного String в указанном FontRenderContext.
Начиная с:
1.2
См. также:
  • FontRenderContext
  • createGlyphVector(FontRenderContext, String)

getStringBounds

public Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)
Возвращает логические границы указанного String в указанном FontRenderContext. Логические границы включают начало координат, асцент, ширину и высоту, в которую входит интерлиньяж. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и некоторых шрифтах диакритические знаки могут располагаться выше верхней границы асцента или ниже нижней границы децента. Чтобы получить визуальную ограничивающую рамку, охватывающую весь текст, используйте метод getBounds класса TextLayout.

Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).

Параметры:
str — указанный String
beginIndex — начальное смещение str
limit — конечное смещение str
frc — указанный FontRenderContext
Возвращает:
Rectangle2D, представляющий ограничивающую рамку указанного String в указанном FontRenderContext.
Выбрасывает:
IndexOutOfBoundsException — если beginIndex меньше нуля, limit больше длины str или beginIndex больше limit.
Начиная с:
1.2
См. также:
  • FontRenderContext
  • createGlyphVector(FontRenderContext, String)

getStringBounds

public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)
Возвращает логические границы указанного массива символов в указанном FontRenderContext. Логические границы включают начало координат, асцент, ширину и высоту, в которую входит интерлиньяж. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и некоторых шрифтах диакритические знаки могут располагаться выше верхней границы асцента или ниже нижней границы децента. Чтобы получить визуальную ограничивающую рамку, охватывающую весь текст, используйте метод getBounds класса TextLayout.

Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).

Параметры:
chars — массив символов
beginIndex — начальное смещение в массиве символов
limit — конечное смещение в массиве символов
frc — указанный FontRenderContext
Возвращает:
Rectangle2D, представляющий ограничивающую рамку указанного массива символов в указанном FontRenderContext.
Выбрасывает:
IndexOutOfBoundsException — если beginIndex меньше нуля, limit больше длины chars или beginIndex больше limit.
Начиная с:
1.2
См. также:
  • FontRenderContext
  • createGlyphVector(FontRenderContext, String)

getStringBounds

public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
Возвращает логические границы символов, индексированных в указанном CharacterIterator, в указанном FontRenderContext. Логические границы включают начало координат, асцент, ширину и высоту, в которую входит интерлиньяж. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и некоторых шрифтах диакритические знаки могут располагаться выше верхней границы асцента или ниже нижней границы децента. Чтобы получить визуальную ограничивающую рамку, охватывающую весь текст, используйте метод getBounds класса TextLayout.

Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).

Параметры:
ci — указанный CharacterIterator
beginIndex — начальное смещение в ci
limit — конечное смещение в ci
frc — указанный FontRenderContext
Возвращает:
Rectangle2D, представляющий ограничивающую рамку символов, индексированных в указанном CharacterIterator, в указанном FontRenderContext.
Выбрасывает:
IndexOutOfBoundsException — если beginIndex меньше начального индекса ci, limit больше конечного индекса ci или beginIndex больше limit
Начиная с:
1.2
См. также:
  • FontRenderContext
  • createGlyphVector(FontRenderContext, String)

getMaxCharBounds

public Rectangle2D getMaxCharBounds(FontRenderContext frc)
Возвращает границы символа с наибольшими границами, определёнными в указанном FontRenderContext.

Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).

Параметры:
frc — указанный FontRenderContext
Возвращает:
Rectangle2D, представляющий ограничивающую рамку символа с наибольшими границами.

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc, String str)
Создаёт GlyphVector, сопоставляя символы глифам один к одному на основе таблицы cmap Unicode в этом Font. Этот метод не выполняет никакой обработки, кроме сопоставления глифов символам. Это означает, что данный метод не подходит для некоторых систем письма, например арабской, еврейской, тайской и индийской, для которых требуется переупорядочивание, формирование или подстановка лигатур.
Параметры:
frc — указанный FontRenderContext
str — указанный String
Возвращает:
новый GlyphVector, созданный с использованием указанного String и указанного FontRenderContext.

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)
Создаёт GlyphVector, сопоставляя символы глифам один к одному на основе таблицы cmap Unicode в этом Font. Этот метод не выполняет никакой обработки, кроме сопоставления глифов символам. Это означает, что данный метод не подходит для некоторых систем письма, например арабской, еврейской, тайской и индийской, для которых требуется переупорядочивание, формирование или подстановка лигатур.
Параметры:
frc — указанный FontRenderContext
chars — указанный массив символов
Возвращает:
новый GlyphVector, созданный с использованием указанного массива символов и указанного FontRenderContext.

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)
Создаёт GlyphVector, сопоставляя указанные символы глифам один к одному на основе таблицы cmap Unicode в этом Font. Этот метод не выполняет никакой обработки, кроме сопоставления глифов символам. Это означает, что данный метод не подходит для некоторых систем письма, например арабской, еврейской, тайской и индийской, для которых требуется переупорядочивание, формирование или подстановка лигатур.
Параметры:
frc — указанный FontRenderContext
ci — указанный CharacterIterator
Возвращает:
новый GlyphVector, созданный с использованием указанного CharacterIterator и указанного FontRenderContext.

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)
Создаёт GlyphVector, сопоставляя символы глифам один к одному на основе таблицы cmap Unicode в этом Font. Этот метод не выполняет никакой обработки, кроме сопоставления глифов символам. Это означает, что данный метод не подходит для некоторых систем письма, например арабской, еврейской, тайской и индийской, для которых требуется переупорядочивание, формирование или подстановка лигатур.
Параметры:
frc — указанный FontRenderContext
glyphCodes — указанный массив целых чисел
Возвращает:
новый GlyphVector, созданный с использованием указанного массива целых чисел и указанного FontRenderContext.

layoutGlyphVector

public GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)
Возвращает новый объект GlyphVector, по возможности выполняя полную компоновку текста. Полная компоновка необходима для сложного текста, например арабского или хинди. Поддержка различных систем письма зависит от шрифта и реализации.

Для компоновки требуется двунаправленный анализ, выполняемый с помощью Bidi; её следует выполнять только для текста с единым направлением письма. Направление задаётся параметром flags: LAYOUT_RIGHT_TO_LEFT указывает направление письма справа налево (арабский и иврит), а LAYOUT_LEFT_TO_RIGHT — слева направо (английский).

Кроме того, для некоторых операций, например формирования арабского текста, необходим контекст, чтобы символы в начале и на пределе диапазона могли получить правильные формы. Иногда данные в буфере за пределами указанного диапазона некорректны. К параметру flags можно добавить значения LAYOUT_NO_START_CONTEXT и LAYOUT_NO_LIMIT_CONTEXT, чтобы указать, что текст перед началом или после предела диапазона соответственно не следует анализировать как контекст.

Все остальные значения параметра flags зарезервированы.

Параметры:
frc — указанный FontRenderContext
text — текст для компоновки
start — начало текста, используемого для GlyphVector
limit — предел текста, используемого для GlyphVector
flags — управляющие флаги, описанные выше
Возвращает:
новый GlyphVector, представляющий текст между началом и пределом диапазона, с выбранными и расположенными глифами, которые наилучшим образом отображают этот текст
Выбрасывает:
ArrayIndexOutOfBoundsException — если начало или предел диапазона выходит за допустимые границы
Начиная с:
1.4
См. также:
  • Bidi
  • LAYOUT_LEFT_TO_RIGHT
  • LAYOUT_RIGHT_TO_LEFT
  • LAYOUT_NO_START_CONTEXT
  • LAYOUT_NO_LIMIT_CONTEXT

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.desktop/java/awt/Font.html

Spec-Zone.ru

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