Spec-Zone.ru › OpenJDK 17

Класс Font

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

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

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

Глиф — это форма, используемая для отображения символа или последовательности символов. В простых письменных системах, таких как латинская, обычно один глиф представляет один символ. Однако, как правило, символы и глифы не имеют взаимно однозначного соответствия. Например, символ 'á' — ЗАГЛАВНАЯ ЛАТИНСКАЯ БУКВА А С ДИАРЕЗИСОМ, может быть представлен двумя глифами: одним для '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» Physical and Logical Fonts по адресу The 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, для которых это особенно важно, называются 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 преобразование, влияющее на его размер помимо атрибута размера.
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 по заданному имени, стилю и размеру шрифта.

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

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

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

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

Параметры:
name - имя шрифта. Это может быть имя гарнитуры или имя семейства шрифтов, и может представлять собой либо логический шрифт, либо физическую гарнитуру, найденную в этом GraphicsEnvironment. Названия семейств для логических шрифтов: Dialog, DialogInput, Monospaced, Serif или SansSerif. Существуют предопределенные строковые константы для всех этих имен, например, DIALOG. Если name равно null, то логическое имя шрифта нового Font, как возвращается getName(), устанавливается в значение "Default".
style - константа стиля для Font Аргумент стиля - целое число-маска, которая может быть PLAIN, или побитовое объединение BOLD и/или ITALIC (например, ITALIC или BOLD|ITALIC). Если аргумент стиля не соответствует одной из ожидаемых целочисленных масок, то стиль устанавливается в PLAIN.
size - размер шрифта в пунктах Font
C момента:
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
C момента:
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.
C момента:
9

getFont

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

createFonts

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

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

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

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

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

Parameters:
fontFormat - тип шрифта Font, который равен TRUETYPE_FONT, если указан ресурс TrueType, или TYPE1_FONT, если указан ресурс Type 1.
fontStream - объект InputStream представляющий входные данные для шрифта.
Returns:
новый шрифт Font созданный с указанным типом шрифта.
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
Возвращает новый шрифт Font используя указанный тип шрифта и файл шрифта. Новый шрифт Font создается с размером 1 и стилем PLAIN. Этот базовый шрифт затем можно использовать с методами deriveFont в этом классе для получения новых объектов Font с различными размерами, стилями, преобразованиями и функциями шрифта.
Parameters:
fontFormat - тип шрифта Font, который равен TRUETYPE_FONT, если указан ресурс TrueType, или TYPE1_FONT, если указан ресурс Type 1. Пока возвращаемый шрифт или его производные шрифты ссылаются на них, реализация может продолжать обращаться к fontFile для извлечения данных шрифта. Таким образом, результаты не определены, если файл изменен или стал недоступным.

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

fontFile - объект File представляющий входные данные для шрифта.
Returns:
новый шрифт Font созданный с указанным типом шрифта.
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()
Возвращает копию преобразования, связанного с этим шрифтом Font. Это преобразование не обязательно является тем, которое использовалось для построения шрифта. Если шрифт имеет алгоритмическое выделение надстрочных или подстрочных символов или корректировку ширины, это будет включено в возвращаемое преобразование AffineTransform.

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

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

getFamily

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

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

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

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

getFamily

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

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

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

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

getPSName

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

getName

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

getFontName

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

getFontName

public String getFontName(Locale l)
Возвращает имя шрифта Font, локализованное для указанной локали. Например, Helvetica Fett может быть возвращено в качестве имени шрифта. Используйте getFamily для получения семейства шрифта.
Parameters:
l - локаль для получения имени шрифта
Returns:
строку 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()
Возвращает размер шрифта в пунктах этого Font, округлённый до целого числа. Большинство пользователей знакомы с понятием размера в пунктах для указания размера глифов в шрифте. Этот размер в пунктах определяет расстояние между базовыми линиями одной строки и следующей строки в документе с одинарным интервалом. Размер в пунктах основан на типографских пунктах, приблизительно равных 1/72 дюйма.

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

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

getSize2D

public float getSize2D()
Возвращает размер шрифта в этом Font в значении float.
Returns:
размер шрифта в этом Font как значение 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 нет глифа для указанного кода символа Юникода.
Returns:
glyphCode этого Font.
Since:
1.2

getBaselineFor

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

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

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

getAttributes

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

getAvailableAttributes

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

deriveFont

public Font deriveFont(int style, float size)
Создаёт новый Font объект, копируя этот Font объект и применяя новый стиль и размер.
Parameters:
style - стиль для нового Font
size - размер для нового Font
Returns:
новый Font объект.
Since:
1.2

deriveFont

public Font deriveFont(int style, AffineTransform trans)
Создаёт новый Font объект, копируя этот Font объект и применяя новый стиль и преобразование.
Parameters:
style - стиль для нового Font
trans - AffineTransform , связанный с новым 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 - AffineTransform , связанный с новым 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)
Проверяет, содержит ли этот Font глиф для указанного символа.
Parameters:
codePoint - символ (код символа Юникода), для которого требуется глиф.
Returns:
true , если в этом Font есть глиф для символа; false в противном случае.
Throws:
IllegalArgumentException - если код символа не является допустимым кодом символа Юникода.
Since:
1.5
See Also:
  • Character.isValidCodePoint(int)

canDisplayUpTo

public int canDisplayUpTo(String str)
Указывает, может ли этот Font отобразить указанную String. Для строк с кодировкой Юникода важно знать, может ли определённый шрифт отобразить строку. Этот метод возвращает смещение в 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. Этот метод является удобной перегрузкой.
Parameters:
text - указанный массив значений char
start - указанный начальный смещение (в chars) в указанном массиве значений char
limit - указанное конечное смещение (в chars) в указанном массиве значений char
Returns:
смещение в text, указывающее на первый символ в text, который этот Font не может отобразить; или -1, если этот Font может отобразить все символы в text.
Since:
1.2

canDisplayUpTo

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

getItalicAngle

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

hasUniformLineMetrics

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

getLineMetrics

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

getLineMetrics

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

getLineMetrics

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

getLineMetrics

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

getStringBounds

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

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

Parameters:
str - указанная String
frc - указанный FontRenderContext
Returns:
Rectangle2D, являющийся областью, ограничивающей указанную String в указанном FontRenderContext.
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:
объект 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:
объект 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:
объект 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:
объект 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 могут быть добавлены в параметр флагов для указания того, что текст перед началом или после конца соответственно не должен рассматриваться для получения контекста.

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

Parameters:
frc - указанный FontRenderContext
text - текст для верстки
start - начало текста для использования в GlyphVector
limit - конец текста для использования в GlyphVector
flags - управляющие флаги, как описано выше
Returns:
новый GlyphVector, представляющий текст между началом и концом, с выбранными и расположенными глифами, наилучшим образом представляющими текст
Throws:
ArrayIndexOutOfBoundsException - если начало или конец находятся за пределами границ
Since:
1.4
See Also:
  • Bidi
  • LAYOUT_LEFT_TO_RIGHT
  • LAYOUT_RIGHT_TO_LEFT
  • LAYOUT_NO_START_CONTEXT
  • LAYOUT_NO_LIMIT_CONTEXT

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

Spec-Zone.ru

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