Spec-Zone.ru › OpenJDK 24

Класс 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". В сложных системах письма, таких как арабская или южно- и юго-восточно-азиатские системы письма, связь между символами и глифами может быть более сложной и включать контекстно-зависимый выбор глифов, а также переупорядочение глифов. Шрифт инкапсулирует набор глифов, необходимых для рендеринга выбранного набора символов, а также таблицы, необходимые для сопоставления последовательностей символов с соответствующими последовательностями глифов.

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

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

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

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

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

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

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

Один 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, для которых это особенно важно, отмечены как имеющие «координаты, относительные к линии базы».

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

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

Модификатор и тип Поле Описание
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, указывающий, что текст в массиве символов после указанного предела не должен рассматриваться.
static final int LAYOUT_NO_START_CONTEXT
Флаг для layoutGlyphVector, указывающий, что текст в массиве символов до указанного начала не должен рассматриваться.
static final int LAYOUT_RIGHT_TO_LEFT
Флаг для layoutGlyphVector, указывающий, что текст выводится справа налево в соответствии с анализом Bidi.
static final String MONOSPACED
Строковая константа для канонического семейного имени логического шрифта «Monospaced».
protected String name
Логическое имя этого Font, переданное в конструктор.
static final int PLAIN
Постоянная для стиля «обычный».
protected float pointSize
Размер шрифта этого Font в float.
static final int ROMAN_BASELINE
Базовая линия, используемая в большинстве римских шрифтов при выводе текста.
static final String SANS_SERIF
Строковая константа для канонического семейного имени логического шрифта «SansSerif».
static final String SERIF
Строковая константа для канонического семейного имени логического шрифта «Serif».
protected int size
Размер шрифта этого Font, округленный до целого числа.
protected int style
Стиль этого Font, переданный в конструктор.
static final int TRUETYPE_FONT
Идентификация ресурса шрифта типа TRUETYPE.
static final int TYPE1_FONT
Идентификация ресурса шрифта типа TYPE1.

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

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

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

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 нет глифа для указанного кода символа Юникода.
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 преобразование, которое влияет на его размер помимо атрибута Размер.
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
Базовая линия, используемая в большинстве шрифтов типа «Roman» для вывода текста.
См. также:
  • Значения константных полей

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 по указанному имени, стилю и размеру шрифта.

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

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

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

Если параметр name представляет собой что-то кроме логического шрифта, т.е. интерпретируется как физический шрифт или семейство, и это не может быть сопоставлено реализацией с физическим шрифтом или совместимой альтернативой, то система шрифтов сопоставит экземпляр шрифта со шрифтом "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)
Возвращает Font, подходящий к атрибутам. Если attributes содержит атрибут FONT с допустимым значением Font, он будет объединён с оставшимися атрибутами. См. TextAttribute.FONT для получения дополнительной информации.
Параметры:
attributes - атрибуты, которые необходимо назначить новому Font
Возвращает:
новый Font, созданный с указанными атрибутами
Исключения:
NullPointerException - если attributes равно null.
С:
1.2
См. также:
  • TextAttribute

createFonts

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

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

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

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

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

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

createFonts

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

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

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

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

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

createFont

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

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

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

createFont

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

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

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

getTransform

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

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

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

getFamily

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

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

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

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

getFamily

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

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

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

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

getPSName

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

getName

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

getFontName

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

getFontName

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

getStyle

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

getSize

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

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

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

getSize2D

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

isPlain

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

isBold

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

isItalic

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

isTransformed

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

hasLayoutAttributes

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

getFont

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

decode

public static Font decode(String str)
Возвращает шрифт Font, который описывается аргументом str. Чтобы гарантировать, что этот метод возвращает нужный шрифт, отформатируйте параметр 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.

Параметры:
str - имя шрифта или null
Возвращает:
объект Font, описываемый str, или новый шрифт по умолчанию, если str равно null.
С тех пор:
1.1
См. также:
  • 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:
код глифа этого Font.
Since:
1.2

getBaselineFor

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

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

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 глиф для указанного символа.

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

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

canDisplay

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

canDisplayUpTo

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

canDisplayUpTo

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

canDisplayUpTo

public int canDisplayUpTo(CharacterIterator iter, int start, int limit)
Указывает, может ли этот шрифт отобразить текст, заданный итератором, начиная с start и заканчивая limit.
Parameters:
iter - объект CharacterIterator
start - указанное начальное смещение в указанном итераторе.
limit - указанное конечное смещение в указанном итераторе.
Returns:
смещение в строке, которое указывает на первый символ в строке, который этот шрифт не может отобразить; или -1, если этот шрифт может отобразить все символы в строке.
Since:
1.2

getItalicAngle

public float getItalicAngle()
Возвращает угол наклона курсива этого шрифта. Угол наклона курсива - обратный наклон, который лучше всего соответствует начертанию этого шрифта.
Returns:
угол наклона стиля курсива этого шрифта.
See Also:
  • TextAttribute.POSTURE

hasUniformLineMetrics

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

getLineMetrics

public LineMetrics getLineMetrics(String str, FontRenderContext frc)
Возвращает объект LineMetrics, созданный с указанным текстом и FontRenderContext.
Parameters:
str - указанный текст
frc - указанный FontRenderContext
Returns:
объект LineMetrics, созданный с указанным текстом и FontRenderContext.

getLineMetrics

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

getLineMetrics

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

getLineMetrics

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

getStringBounds

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

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

Parameters:
str - указанная строка
frc - указанный контекст отрисовки шрифта
Returns:
объект Rectangle2D, представляющий область, которая является границей указанной строки в указанном контексте отрисовки шрифта.
Since:
1.2
See Also:
  • 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).

Parameters:
str - указанная String
beginIndex - начальное смещение str
limit - конечное смещение str
frc - указанный FontRenderContext
Returns:
a Rectangle2D, представляющий прямоугольник, охватывающий указанную String в указанном FontRenderContext.
Throws:
IndexOutOfBoundsException - если beginIndex меньше нуля, или limit больше длины str, или beginIndex больше limit.
Since:
1.2
See Also:
  • 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).

Parameters:
chars - массив символов
beginIndex - начальное смещение в массиве символов
limit - конечное смещение в массиве символов
frc - указанный FontRenderContext
Returns:
a Rectangle2D, представляющий прямоугольник, охватывающий указанный массив символов в указанном FontRenderContext.
Throws:
IndexOutOfBoundsException - если beginIndex меньше нуля, или limit больше длины chars, или beginIndex больше limit.
Since:
1.2
See Also:
  • 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).

Parameters:
ci - указанный CharacterIterator
beginIndex - начальное смещение в ci
limit - конечное смещение в ci
frc - указанный FontRenderContext
Returns:
a Rectangle2D, представляющий прямоугольник, охватывающий символы, индексированные в указанном CharacterIterator в указанном FontRenderContext.
Throws:
IndexOutOfBoundsException - если beginIndex меньше начального индекса ci, или limit больше конечного индекса ci, или beginIndex больше limit
Since:
1.2
See Also:
  • FontRenderContext
  • createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)

getMaxCharBounds

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

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

Parameters:
frc - указанный FontRenderContext
Returns:
a Rectangle2D, представляющий прямоугольник для символа с максимальными границами.

createGlyphVector

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

createGlyphVector

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

createGlyphVector

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

createGlyphVector

public GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)
Создаёт GlyphVector, сопоставляя символы с глифами один к одному на основе Unicode cmap в этом Font. Этот метод не выполняет дополнительных операций, кроме сопоставления глифов символам. Это означает, что этот метод не подходит для некоторых сценариев письма, таких как арабский, иврит, тайский и индийские, которые требуют переупорядочения, форматирования или подстановки лигатур.
Parameters:
frc - указанный FontRenderContext
glyphCodes - указанный целочисленный массив
Returns:
новый 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, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/Font.html

Spec-Zone.ru

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