Spec-Zone.ru › OpenJDK 21

Класс Font

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

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

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

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

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

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

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

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

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

Обсуждение относительных преимуществ и недостатков использования физических или логических шрифтов см. в разделе «Физические и логические шрифты» документа «Руководства по Java» по адресу https://docs.oracle.com/javase/tutorial/2d/text/fonts.html#advantages-and-disadvantages в документе Руководства по 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 final int 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, указывающий, что текст в массиве char после указанного предела не должен рассматриваться.
static final int LAYOUT_NO_START_CONTEXT
Флаг для layoutGlyphVector, указывающий, что текст в массиве char перед указанным началом не должен рассматриваться.
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 с указанными атрибутами.

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

Modifier and Type Method Description
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.
END_OF_DOCUMENT_MARKER
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
Строковая константа для канонического семейного имени логического шрифта "Dialog". Она полезна при создании шрифта для проверки имени на этапе компиляции.
С момента:
1.6
См. также:
  • Значения константных полей

DIALOG_INPUT

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

SANS_SERIF

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

SERIF

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

MONOSPACED

public static final String MONOSPACED
Строковая константа для канонического семейного имени логического шрифта "Monospaced". Она полезна при создании шрифта для проверки имени на этапе компиляции.
С момента:
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.
С момента:
1.3
См. также:
  • Значения константных полей

TYPE1_FONT

public static final int TYPE1_FONT
Идентифицирует ресурс шрифта типа TYPE1. Используется для указания ресурса шрифта Type1 методу createFont(int, java.io.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, указывающий, что текст в массиве символов до указанного начала не должен рассматриваться.
См. также:
  • Значения константных полей

LAYOUT_NO_LIMIT_CONTEXT

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

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

Шрифт

public Font(String name, int style, int size)
Создаёт новый Font по указанному имени, стилю и размеру.

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

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

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

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

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

Шрифт

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

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

Parameters:
attributes - атрибуты, назначаемые новому Font, или null
See Also:
  • TextAttribute

Шрифт

protected Font(Font font)
Создаёт новый Font из указанного font. Этот конструктор предназначен для использования подклассами.
Parameters:
font - для создания этого Font.
Throws:
NullPointerException - если font равно null
Since:
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, поэтому для получения ответа, учитывающего такие атрибуты шрифта, необходимо обратиться к этому методу для конкретного шрифта.

Parameters:
chars - текст.
start - индекс первого символа для проверки.
end - конечный индекс (исключительно).
Returns:
true если указанный текст потребует специальной обработки макета.
Throws:
NullPointerException - если chars равно null.
ArrayIndexOutOfBoundsException - если start отрицательно или end больше длины массива chars.
Since:
9

getFont

public static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Возвращает Font соответствующий атрибутам. Если attributes содержит атрибут FONT с допустимым значением Font, он будет объединён с оставшимися атрибутами. Смотрите TextAttribute.FONT для получения дополнительной информации.
Parameters:
attributes - атрибуты, назначаемые новому Font
Returns:
новый Font , созданный с указанными атрибутами
Throws:
NullPointerException - если attributes равно null.
Since:
1.2
See Also:
  • 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 был доступен конструкторам шрифтов, он должен быть зарегистрирован в GraphicsEnvironment вызовом registerFont(Font).

Parameters:
fontStream - объект InputStream , представляющий входные данные для шрифта или коллекции шрифтов.
Returns:
новый массив Font[].
Throws:
FontFormatException - если данные fontStream не содержат необходимых таблиц шрифтов для любого из элементов коллекции или если в нём нет вообще шрифтов.
IOException - если fontStream не может быть полностью прочитан.
Since:
9
See Also:
  • GraphicsEnvironment.registerFont(Font)

createFonts

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

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

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

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

Parameters:
fontFile - объект File, содержащий входные данные для шрифта или коллекции шрифтов.
Returns:
новый массив Font[].
Throws:
FontFormatException - если File не содержит необходимых таблиц шрифтов для любого из элементов коллекции или если в нём вообще нет шрифтов.
IOException - если fontFile не может быть прочитан.
Since:
9
See Also:
  • GraphicsEnvironment.registerFont(Font)

createFont

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

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

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

createFont

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

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

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

getTransform

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

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

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

getFamily

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

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

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

Returns:
строку, представляющую имя семейства этого шрифта.
Since:
1.1
See Also:
  • getName()
  • getFontName()

getFamily

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

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

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

Parameters:
l - язык для получения имени семейства
Returns:
строку, представляющую имя семейства шрифта, локализованное для указанного языка.
Since:
1.2
See Also:
  • getFontName()
  • Locale

getPSName

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

getName

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

getFontName

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

getFontName

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

getStyle

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

getSize

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

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

Returns:
размер шрифта в пунктах (1/72 дюйма).
Since:
1.0
See Also:
  • getSize2D()
  • GraphicsConfiguration.getDefaultTransform()
  • GraphicsConfiguration.getNormalizingTransform()

getSize2D

public float getSize2D()
Возвращает размер шрифта в пунктах в значении float.
Returns:
размер шрифта в пунктах как значение float.
Since:
1.2
See Also:
  • getSize()

isPlain

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

isBold

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

isItalic

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

isTransformed

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

hasLayoutAttributes

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

getFont

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

decode

public static Font decode(String str)
Возвращает Font , описываемый аргументом str. Для обеспечения возврата нужного шрифта, отформатируйте параметр str одним из этих способов:
  • имя_шрифта-стиль-размер
  • имя_шрифта-размер
  • имя_шрифта-стиль
  • имя_шрифта
  • имя_шрифта стиль размер
  • имя_шрифта размер
  • имя_шрифта стиль
  • имя_шрифта
в котором стиль - одна из четырех строк (регистр не учитывается): "PLAIN", "BOLD", "BOLDITALIC", или "ITALIC", а размер - положительное целое десятичное число, представляющее размер в пунктах. Например, если вам нужен шрифт Arial, полужирный, размером 18 пунктов, вы должны вызвать этот метод со строкой "Arial-BOLD-18". Это эквивалентно вызову конструктора шрифта: 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, или новый шрифт по умолчанию, если 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 - шрифт по умолчанию, который нужно вернуть, если свойство 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 нет глифа для указанного кода Unicode.
Returns:
код глифа этого 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 и применяя к нему новый набор атрибутов шрифта.
Parameters:
attributes - карта атрибутов, включенных для нового Font
Returns:
новый объект Font.
Since:
1.2

canDisplay

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

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

Parameters:
c - символ, для которого требуется глиф
Returns:
true если в этом Font есть глиф для этого символа; false в противном случае.
Since:
1.2

canDisplay

public boolean canDisplay(int codePoint)
Проверяет, содержит ли этот Font глиф для указанного символа.
Parameters:
codePoint - символ (код Unicode), для которого требуется глиф.
Returns:
true если в этом Font есть глиф для символа; false в противном случае.
Throws:
IllegalArgumentException - если код символа не является допустимым кодом Unicode.
Since:
1.5
See Also:
  • Character.isValidCodePoint(int)

canDisplayUpTo

public int canDisplayUpTo(String str)
Указывает, может ли этот Font отображать указанную строку String. Для строк с кодировкой Unicode важно знать, может ли определенный шрифт отобразить строку. Этот метод возвращает смещение в String str, которое является первым символом, который этот Font не может отобразить без использования кода отсутствующего глифа. Если Font может отобразить все символы, возвращается -1.
Parameters:
str - объект String
Returns:
смещение в str, указывающее на первый символ в str, который этот Font не может отобразить; или -1 если этот Font может отобразить все символы в str.
Since:
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.
Возвращает:
угол стиля КURCИВ этого 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 - заданная строка
Возвращает:
новый 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, как выполняется 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, 2023, 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/21/docs/api/java.desktop/java/awt/Font.html

Spec-Zone.ru

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