Класс Font

Все реализованные интерфейсы:
Serializable
Прямые известные подклассы:
FontUIResource
public class Font
extends Object
implements Serializable

Класс Font представляет шрифты, которые используются для визуального отображения текста. Шрифт предоставляет информацию, необходимую для сопоставления последовательностей символов с последовательностями глифов и для отображения последовательностей глифов на объектах Graphics и Component.

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

Символ — это символ, который абстрактно представляет собой элемент, такой как буква, цифра или знак препинания. Например, 'g', МАЛЕНЬКАЯ БУКВА G, является символом.

Глиф — это форма, используемая для отображения символа или последовательности символов. В простых системах письма, таких как латинская, обычно один глиф представляет один символ. Однако, в общем случае, символы и глифы не имеют взаимно однозначного соответствия. Например, символ 'á' МАЛЕНЬКАЯ БУКВА A С ОСТРЫМ УДАРЕНИЕМ может быть представлен двумя глифами: одним для 'a' и одним для '´'. С другой стороны, строка из двух символов "fi" может быть представлена одним глифом, лигатурой "fi". В сложных системах письма, таких как арабская или южно- и юго-восточноазиатские системы письма, взаимоотношения между символами и глифами могут быть более сложными и включать контекстно-зависимый выбор глифов, а также перестановку глифов. Шрифт содержит набор глифов, необходимых для отображения выбранного набора символов, а также таблицы, необходимые для сопоставления последовательностей символов с соответствующими последовательностями глифов.

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

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

Физические шрифты — это фактические библиотеки шрифтов, содержащие данные глифов и таблицы для отображения последовательностей символов в последовательности глифов, используя технологию шрифтов, такую как TrueType или PostScript Type 1. Все реализации платформы Java должны поддерживать шрифты TrueType; поддержка других технологий шрифтов зависит от реализации. Физические шрифты могут использовать такие имена, как Helvetica, Palatino, HonMincho или любое количество других имён шрифтов. Как правило, каждый физический шрифт поддерживает только ограниченный набор систем письма, например, только латинские символы или только японские и базовые латинские символы. Набор доступных физических шрифтов варьируется в зависимости от конфигурации. Приложения, которым требуются определённые шрифты, могут объединять их и инициализировать их, используя метод 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. Это делает некоторые операции, такие как отображение подчеркнутого текста, удобными, так как не нужно явно создавать объект TextLayout. Атрибуты могут быть установлены на шрифте путём построения или получения его с помощью Map значений TextAttribute.

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

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

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

Конструктор, основанный на Map, и API deriveFont игнорируют атрибут FONT и не сохраняют его в шрифте; следует использовать статический метод getFont(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>), если атрибут FONT может присутствовать. См. TextAttribute.FONT для получения дополнительной информации.

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

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

См. также:
Сериализованная форма

Поля

Модификатор и тип Поле Описание
static int BOLD

Константа стиля «жирный».

static int CENTER_BASELINE

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

static String DIALOG

Строковая константа для канонического семейного имени логического шрифта «Dialog».

static String DIALOG_INPUT

Строковая константа для канонического семейного имени логического шрифта «DialogInput».

static int HANGING_BASELINE

Базовая линия, используемая в системе деванагари и похожих системах при выводе текста.

static int ITALIC

Константа стиля «курсив».

static int LAYOUT_LEFT_TO_RIGHT

Флаг, указывающий функции layoutGlyphVector, что текст слева направо, как определено анализом Bidi.

static int LAYOUT_NO_LIMIT_CONTEXT

Флаг, указывающий функции layoutGlyphVector, что текст в массиве char после указанного предела не должен рассматриваться.

static int LAYOUT_NO_START_CONTEXT

Флаг, указывающий функции layoutGlyphVector, что текст в массиве char перед указанным началом не должен рассматриваться.

static int LAYOUT_RIGHT_TO_LEFT

Флаг, указывающий функции layoutGlyphVector, что текст справа налево, как определено анализом Bidi.

static String MONOSPACED

Строковая константа для канонического семейного имени логического шрифта «Monospaced».

protected String name

Логическое имя этого Font, переданное в конструктор.

static int PLAIN

Константа стиля «обычный».

protected float pointSize

Размер шрифта этого Font в float.

static int ROMAN_BASELINE

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

static String SANS_SERIF

Строковая константа для канонического семейного имени логического шрифта «SansSerif».

static String SERIF

Строковая константа для канонического семейного имени логического шрифта «Serif».

protected int size

Размер шрифта этого Font, округленный до целого числа.

protected int style

Стиль этого Font, переданный в конструктор.

static int TRUETYPE_FONT

Идентификация ресурса шрифта типа TRUETYPE.

static int TYPE1_FONT

Идентификация ресурса шрифта типа TYPE1.

Конструкторы

Модификатор Конструктор Описание
protected Font​(Font font)

Создает новый Font из указанного font.

Font​(String name, int style, int size)

Создает новый Font из указанного имени, стиля и размера шрифта.

Font​(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes)

Создает новый 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, если этот шрифт содержит атрибуты, требующие дополнительной обработки макета.

boolean hasUniformLineMetrics()

Проверяет, имеет ли этот Font равномерные метрики линий.

boolean isBold()

Указывает, является ли стиль этого объекта Font жирным.

boolean isItalic()

Указывает, является ли стиль этого объекта Font курсивным.

boolean isPlain()

Указывает, является ли стиль этого объекта Font обычным.

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.

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

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

Поля

DIALOG

public static final String DIALOG

Константа String для канонического семейства логического шрифта "Dialog". Она полезна при создании шрифтов для проверки имени во время компиляции.

Since:
1.6
См. также:
Значения константных полей

DIALOG_INPUT

public static final String DIALOG_INPUT

Константа String для канонического семейства логического шрифта "DialogInput". Она полезна при создании шрифтов для проверки имени во время компиляции.

Since:
1.6
См. также:
Значения константных полей

SANS_SERIF

public static final String SANS_SERIF

Константа String для канонического семейства логического шрифта "SansSerif". Она полезна при создании шрифтов для проверки имени во время компиляции.

Since:
1.6
См. также:
Значения константных полей

SERIF

public static final String SERIF

Константа String для канонического семейства логического шрифта "Serif". Она полезна при создании шрифтов для проверки имени во время компиляции.

Since:
1.6
См. также:
Значения константных полей

MONOSPACED

public static final String MONOSPACED

Константа String для канонического семейства логического шрифта "Monospaced". Она полезна при создании шрифтов для проверки имени во время компиляции.

Since:
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, java.io.InputStream). Формат TrueType был расширен до формата OpenType, который добавляет поддержку шрифтов с контурами Postscript, поэтому этот тег относится к этим шрифтам, а также к шрифтам с контурами TrueType.

Since:
1.3
См. также:
Значения константных полей

TYPE1_FONT

public static final int TYPE1_FONT

Идентификатор ресурса шрифта типа TYPE1. Используется для указания ресурса шрифта Type1 в методе createFont(int, java.io.InputStream).

Since:
1.5
См. также:
Значения константных полей

name

protected String name

Логическое имя этого Font, переданное в конструктор.

Since:
1.0
См. также:
getName()

style

protected int style

Стиль этого Font, переданный в конструктор. Этот стиль может быть PLAIN, BOLD, ITALIC или BOLD+ITALIC.

Since:
1.0
См. также:
getStyle()

size

protected int size

Размер шрифта в пунктах этого Font, округленный до целого числа.

Since:
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 после указанного предела не должен проверяться.

См. также:
Значения константных полей

Конструкторы

Шрифт

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()

Шрифт

public Font(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes)

Создаёт новый Font со значениями указанных атрибутов. Только ключи, определённые в TextAttribute, распознаются. Кроме того, атрибут FONT не распознаётся этим конструктором (см. getAvailableAttributes()). Только атрибуты, имеющие значения допустимых типов, повлияют на новый Font.

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

Параметры:
attributes - атрибуты для присвоения новому Font, или null
См. также:
TextAttribute

Шрифт

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)

Возвращает шрифт, соответствующий атрибутам. Если attributes содержит атрибут FONT со значением допустимого Font, он будет объединён с любыми оставшимися атрибутами. Подробнее см. TextAttribute.FONT.

Параметры:
attributes - атрибуты для назначения новому шрифту
Возвращает:
новый шрифт, созданный со специфицированными атрибутами
Исключение:
NullPointerException - если attributes равно null.
С:
1.2
См. также:
TextAttribute

createFonts

public static Font[] createFonts(InputStream fontStream)
                          throws FontFormatException,
                                 IOException

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

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

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

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

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

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

createFonts

public static Font[] createFonts(File fontFile)
                          throws FontFormatException,
                                 IOException

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

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

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

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

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

createFont

public static Font createFont(int fontFormat,
                              InputStream fontStream)
                       throws FontFormatException,
                              IOException

Возвращает новый шрифт, используя указанный тип шрифта и входные данные. Новый шрифт создаётся с размером 1 и стилем PLAIN. Этот базовый шрифт затем можно использовать с методами deriveFont в этом классе для получения новых объектов Font с различными размерами, стилями, преобразованиями и функциями шрифта. Этот метод не закрывает InputStream.

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

Параметры:
fontFormat - тип шрифта, который является TRUETYPE_FONT, если указан ресурс TrueType, или TYPE1_FONT, если указан ресурс Type 1.
fontStream - объект InputStream , представляющий входные данные для шрифта.
Возвращает:
новый шрифт, созданный с указанным типом шрифта.
Исключение:
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

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

Параметры:
fontFormat - тип шрифта, который является TRUETYPE_FONT, если указан ресурс TrueType, или TYPE1_FONT, если указан ресурс Type 1. До тех пор, пока на возвращаемый шрифт или его производные шрифты ссылаются, реализация может продолжать доступ к fontFile для получения данных шрифта. Таким образом, результаты не определены, если файл изменяется или становится недоступным.

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

fontFile - объект File , представляющий входные данные для шрифта.
Возвращает:
новый шрифт, созданный с указанным типом шрифта.
Исключение:
IllegalArgumentException - если fontFormat не является TRUETYPE_FONT или TYPE1_FONT.
NullPointerException - если fontFile равно null.
IOException - если fontFile нельзя прочитать.
FontFormatException - если fontFile не содержит необходимых таблиц шрифтов для указанного формата.
SecurityException - если у выполняемого кода нет разрешения на чтение из файла.
С:
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 для получения имени начертания шрифта.

Возвращает:
строку, являющуюся именем семейства этого Font.
Since:
1.1
См. также:
getName(), getFontName()

getFamily

public String getFamily(Locale l)

Возвращает имя семейства этого Font, локализованное для указанного региона.

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

Используйте getFontName для получения имени начертания шрифта.

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

getPSName

public String getPSName()

Возвращает имя PostScript этого Font. Используйте getFamily для получения имени семейства шрифта. Используйте getFontName для получения имени начертания шрифта.

Возвращает:
строку, представляющую имя PostScript этого Font.
Since:
1.2

getName

public String getName()

Возвращает логическое имя этого Font. Используйте getFamily для получения имени семейства шрифта. Используйте getFontName для получения имени начертания шрифта.

Возвращает:
строку, представляющую логическое имя этого Font.
Since:
1.0
См. также:
getFamily(), getFontName()

getFontName

public String getFontName()

Возвращает имя начертания шрифта этого Font. Например, Helvetica Bold может быть возвращено как имя начертания. Используйте getFamily для получения имени семейства шрифта. Используйте getName для получения логического имени шрифта.

Возвращает:
строку, представляющую имя начертания шрифта этого Font.
Since:
1.2
См. также:
getFamily(), getName()

getFontName

public String getFontName(Locale l)

Возвращает имя начертания шрифта Font, локализованное для указанного региона. Например, Helvetica Fett может быть возвращено как имя начертания. Используйте getFamily для получения имени семейства шрифта.

Параметры:
l - регион, для которого требуется получить имя начертания шрифта
Возвращает:
строку, представляющую имя начертания шрифта, локализованное для указанного региона.
См. также:
getFamily(), Locale

getStyle

public int getStyle()

Возвращает стиль этого Font. Стиль может быть PLAIN, BOLD, ITALIC или BOLD+ITALIC.

Возвращает:
стиль этого Font.
Since:
1.0
См. также:
isPlain(), isBold(), isItalic()

getSize

public int getSize()

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

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

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

getSize2D

public float getSize2D()

Возвращает размер шрифта в пунктах этого Font в float.

Возвращает:
размер шрифта в пунктах этого Font в виде float.
Since:
1.2
См. также:
getSize()

isPlain

public boolean isPlain()

Указывает, является ли стиль этого объекта Font PLAIN.

Возвращает:
true если у этого Font стиль PLAIN; false в противном случае.
Since:
1.0
См. также:
getStyle()

isBold

public boolean isBold()

Указывает, является ли стиль этого объекта Font BOLD.

Возвращает:
true если у этого объекта Font стиль BOLD; false в противном случае.
Since:
1.0
См. также:
getStyle()

isItalic

public boolean isItalic()

Указывает, является ли стиль этого объекта Font ITALIC.

Возвращает:
true если у этого объекта Font стиль ITALIC; false в противном случае.
Since:
1.0
См. также:
getStyle()

isTransformed

public boolean isTransformed()

Указывает, имеет ли этот объект Font преобразование, которое влияет на его размер помимо атрибута Size.

Возвращает:
true если у этого объекта Font атрибут AffineTransform не равен единичной матрице. false в противном случае.
Since:
1.4
См. также:
getTransform()

hasLayoutAttributes

public boolean hasLayoutAttributes()

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

Возвращает:
true, если шрифт имеет атрибуты вычисления размеров.
Since:
1.6

getFont

public static Font getFont(String nm)

Возвращает объект Font из списка системных свойств. nm обрабатывается как имя системного свойства, которое необходимо получить. Значение String этого свойства затем интерпретируется как объект Font в соответствии со спецификацией Font.decode(String) Если указанное свойство не найдено или выполняющему код нет разрешения на чтение свойства, возвращается null.

Параметры:
nm - имя свойства
Возвращает:
объект Font, который описывается именем свойства, или null, если такое свойство не существует.
Исключения:
NullPointerException - если nm равно null.
Since:
1.2
См. также:
decode(String)

decode

public static Font decode(String str)

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

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

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

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

Для разделения полей ввода может использоваться только один символ ' ' или '-'. Идентифицированный разделитель — это тот, что ближе к концу строки, который отделяет допустимый размер или допустимое имя стиля от остальной части строки. Нулевые (пустые) поля размера и стиля обрабатываются как допустимые поля со значением по умолчанию для этого поля.

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

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

Parameters:
str - имя шрифта или null
Returns:
объект Font, который описывает str, или новый шрифт по умолчанию Font, если str является null.
Since:
1.1
See Also:
getFamily()

getFont

public static Font getFont(String nm,
                           Font font)

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

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

Parameters:
nm - имя свойства, не чувствительное к регистру
font - шрифт по умолчанию Font для возврата, если свойство nm не определено
Returns:
значение Font свойства.
Throws:
NullPointerException - если nm равно null.
See Also:
decode(String)

hashCode

public int hashCode()

Возвращает хэш-код для этого Font.

Overrides:
hashCode в классе Object
Returns:
значение хэш-кода для этого Font.
Since:
1.0
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

equals

public boolean equals(Object obj)

Сравнивает этот объект Font с указанным Object.

Overrides:
equals в классе Object
Parameters:
obj - объект Object для сравнения
Returns:
true если объекты идентичны или если аргумент — объект Font шрифта, описывающий тот же шрифт, что и этот объект; false в противном случае.
Since:
1.0
See Also:
Object.hashCode(), HashMap

toString

public String toString()

Преобразует этот объект Font в строковое представление.

Overrides:
toString в классе Object
Returns:
строковое представление объекта Font.
Since:
1.0

getNumGlyphs

public int getNumGlyphs()

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

Returns:
количество глифов в этом Font.
Since:
1.2

getMissingGlyphCode

public int getMissingGlyphCode()

Возвращает glyphCode, который используется, когда у этого Font нет глифа для указанного кода Юникода.

Returns:
код glyphCode этого Font.
Since:
1.2

getBaselineFor

public byte getBaselineFor(char c)

Возвращает линию основания, подходящую для отображения этого символа.

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

Parameters:
c - символ, используемый для идентификации системы письма
Returns:
линия основания, подходящая для указанного символа.
Since:
1.2
See Also:
LineMetrics.getBaselineOffsets(), ROMAN_BASELINE, CENTER_BASELINE, HANGING_BASELINE

getAttributes

public Map<TextAttribute,?> getAttributes()

Возвращает карту атрибутов шрифта, доступных в этом Font. Атрибуты включают такие вещи, как лигатуры и подстановки глифов.

Returns:
карта атрибутов этого Font.

getAvailableAttributes

public AttributedCharacterIterator.Attribute[] getAvailableAttributes()

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

Returns:
массив, содержащий ключи всех атрибутов, поддерживаемых этим Font.
Since:
1.2

deriveFont

public Font deriveFont(int style,
                       float size)

Создаёт новый объект Font путём копирования этого объекта Font и применения нового стиля и размера.

Parameters:
style - стиль для нового Font
size - размер для нового Font
Returns:
новый объект Font.
Since:
1.2

deriveFont

public Font deriveFont(int style,
                       AffineTransform trans)

Создаёт новый объект Font путём копирования этого объекта Font и применения нового стиля и преобразования.

Parameters:
style - стиль для нового Font
trans - преобразование, связанное с новым Font
Returns:
новый объект Font.
Throws:
IllegalArgumentException - если trans равно null
Since:
1.2

deriveFont

public Font deriveFont(float size)

Создаёт новый объект Font путём копирования текущего объекта Font и применения нового размера к нему.

Parameters:
size - размер для нового Font.
Returns:
новый объект Font.
Since:
1.2

deriveFont

public Font deriveFont(AffineTransform trans)

Создаёт новый объект Font путём копирования текущего объекта Font и применения нового преобразования к нему.

Parameters:
trans - преобразование, связанное с новым Font
Returns:
новый объект Font.
Throws:
IllegalArgumentException - если trans равно null
Since:
1.2

deriveFont

public Font deriveFont(int style)

Создаёт новый объект Font путём копирования текущего объекта Font и применения нового стиля к нему.

Parameters:
style - стиль для нового Font
Returns:
новый объект Font.
Since:
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 глиф для указанного символа.

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

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

canDisplay

public boolean canDisplay(int codePoint)

Проверяет, есть ли у этого Font глиф для указанного символа.

Параметры:
codePoint - символ (код Юникода), для которого нужен глиф.
Возвращает:
true если у этого Font есть глиф для символа; false в противном случае.
Исключение:
IllegalArgumentException - если код символа не является допустимым кодом Юникода.
С:
1.5
См. также:
Character.isValidCodePoint(int)

canDisplayUpTo

public int canDisplayUpTo(String str)

Указывает, может ли этот Font отобразить указанную String. Для строк с кодировкой Юникода важно знать, может ли определённый шрифт отобразить строку. Этот метод возвращает смещение в 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 - указанное начальное смещение (в chars) в указанный массив значений char
limit - указанное конечное смещение (в chars) в указанный массив значений 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(java.awt.font.FontRenderContext, java.lang.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(java.awt.font.FontRenderContext, java.lang.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(java.awt.font.FontRenderContext, java.lang.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(java.awt.font.FontRenderContext, java.lang.String)

getMaxCharBounds

public Rectangle2D getMaxCharBounds(FontRenderContext frc)

Возвращает границы символа с максимальными границами, определенными в указанном FontRenderContext.

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

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

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc,
                                     String str)

Создает объект GlyphVector, отображая символы в глифы один к одному на основе Unicode cmap в этом Font. Этот метод не выполняет других операций, кроме сопоставления глифов символам. Это означает, что этот метод не подходит для некоторых сценариев письма, таких как арабский, иврит, тайский и индийские, которые требуют переупорядочения, форматирования или подстановки лигатур.

Параметры:
frc - указанный FontRenderContext
str - указанный String
Возвращает:
новый объект GlyphVector, созданный с указанным String и указанным FontRenderContext.

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc,
                                     char[] chars)

Создает объект GlyphVector, отображая символы в глифы один к одному на основе Unicode cmap в этом Font. Этот метод не выполняет других операций, кроме сопоставления глифов символам. Это означает, что этот метод не подходит для некоторых сценариев письма, таких как арабский, иврит, тайский и индийские, которые требуют переупорядочения, форматирования или подстановки лигатур.

Параметры:
frc - указанный FontRenderContext
chars - указанный массив символов
Возвращает:
новый объект GlyphVector, созданный с указанным массивом символов и указанным FontRenderContext.

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc,
                                     CharacterIterator ci)

Создает объект GlyphVector, отображая указанные символы в глифы один к одному на основе Unicode cmap в этом Font. Этот метод не выполняет других операций, кроме сопоставления глифов символам. Это означает, что этот метод не подходит для некоторых сценариев письма, таких как арабский, иврит, тайский и индийские, которые требуют переупорядочения, форматирования или подстановки лигатур.

Параметры:
frc - указанный FontRenderContext
ci - указанный CharacterIterator
Возвращает:
новый объект GlyphVector, созданный с указанным CharacterIterator и указанным FontRenderContext.

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc,
                                     int[] glyphCodes)

Создает объект GlyphVector, отображая символы в глифы один к одному на основе Unicode cmap в этом Font. Этот метод не выполняет других операций, кроме сопоставления глифов символам. Это означает, что этот метод не подходит для некоторых сценариев письма, таких как арабский, иврит, тайский и индийские, которые требуют переупорядочения, форматирования или подстановки лигатур.

Параметры:
frc - указанный FontRenderContext
glyphCodes - указанный целочисленный массив
Возвращает:
новый объект GlyphVector, созданный с указанным целочисленным массивом и указанным FontRenderContext.

layoutGlyphVector

public GlyphVector layoutGlyphVector(FontRenderContext frc,
                                     char[] text,
                                     int start,
                                     int limit,
                                     int flags)

Возвращает новый объект GlyphVector, выполняя полное форматирование текста, если это возможно. Полное форматирование необходимо для сложного текста, такого как арабский или хинди. Поддержка различных сценариев письма зависит от шрифта и реализации.

Форматирование требует анализа двунаправленности, как выполняется Bidi, и должно выполняться только для текста с одинаковым направлением. Направление указывается в параметре флагов, используя LAYOUT_RIGHT_TO_LEFT для указания направления справа налево (арабский и иврит) или LAYOUT_LEFT_TO_RIGHT для указания направления слева направо (английский).

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

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

Параметры:
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

© 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/Font.html

Spec-Zone .ru
спецификации, руководства, описания, API