Класс Font
- Все реализованные интерфейсы:
Serializable
- Прямые известные подклассы:
FontUIResource
public class Font extends Object implements Serializable
Font представляет шрифты, которые используются для визуального отображения текста. Шрифт предоставляет информацию, необходимую для преобразования последовательностей символов в последовательности глифов и отображения последовательностей глифов на объектах Graphics и Component. Символы и глифы
Символ — это знак, который абстрактно представляет такой элемент, как буква, цифра или знак пунктуации. Например,'g', LATIN SMALL LETTER G, — это символ. Глиф — это форма, используемая для отображения символа или последовательности символов. В простых системах письма, таких как латиница, обычно один глиф представляет один символ. Однако в общем случае соответствие между символами и глифами не является взаимно однозначным. Например, символ «á» LATIN SMALL LETTER A WITH ACUTE может быть представлен двумя глифами: одним для «a» и одним для «´». С другой стороны, двухсимвольная строка "fi" может быть представлена одним глифом — лигатурой "fi". В сложных системах письма, таких как арабская или системы письма Южной и Юго-Восточной Азии, связь между символами и глифами может быть более сложной и включать выбор глифов с учетом контекста, а также перестановку глифов. Шрифт содержит набор глифов, необходимых для отображения выбранного набора символов, а также таблицы, необходимые для преобразования последовательностей символов в соответствующие последовательности глифов.
Физические и логические шрифты
Платформа Java различает два вида шрифтов: физические шрифты и логические шрифты. Физические шрифты — это реальные библиотеки шрифтов, содержащие данные глифов и таблицы для преобразования последовательностей символов в последовательности глифов с использованием такой технологии шрифтов, как TrueType или PostScript Type 1. Все реализации платформы Java должны поддерживать шрифты TrueType; поддержка других технологий шрифтов зависит от реализации. Физические шрифты могут использовать такие имена, как Helvetica, Palatino, HonMincho, и множество других. Как правило, каждый физический шрифт поддерживает лишь ограниченный набор систем письма, например только латинские символы или только японские символы и Basic Latin. Набор доступных физических шрифтов различается в разных конфигурациях. Приложения, которым требуются определенные шрифты, могут включать их в свой состав и создавать экземпляры с помощью метода createFont.
Логические шрифты — это пять семейств шрифтов, определенных платформой Java и обязательных для поддержки в любой среде выполнения Java: Serif, SansSerif, Monospaced, Dialog и DialogInput. Эти логические шрифты не являются реальными библиотеками шрифтов. Вместо этого среда выполнения Java сопоставляет имена логических шрифтов с физическими шрифтами. Сопоставление зависит от реализации и обычно от локали, поэтому внешний вид и метрики этих шрифтов различаются. Как правило, каждому имени логического шрифта соответствует несколько физических шрифтов, чтобы обеспечить поддержку большого диапазона символов.
Компоненты AWT с пировой реализацией, такие как Label и TextField, могут использовать только логические шрифты.
Обсуждение относительных преимуществ и недостатков использования физических и логических шрифтов см. в разделе Физические и логические шрифты документа Учебные материалы по Java.
Начертания и имена шрифтов
УFont может быть много начертаний, например жирное, среднее, курсивное, готическое и обычное. Все эти начертания имеют схожий типографский дизайн. У объекта Font можно получить три разных имени. Логическое имя шрифта — это просто имя, использованное при создании шрифта. Имя начертания, или, для краткости, просто имя шрифта, — это имя определенного начертания, например Helvetica Bold. Имя семейства — это имя семейства шрифтов, определяющее типографский дизайн нескольких начертаний, например Helvetica.
Класс Font представляет экземпляр начертания из набора начертаний, доступных в системных ресурсах хост-системы. Например, Arial Bold и Courier Bold Italic — это начертания шрифтов. С одним начертанием шрифта может быть связано несколько объектов Font, различающихся размером, стилем, преобразованием и атрибутами шрифта.
Из-за ограничений платформы, например отсутствия подходящих платформенных шрифтов для реализации логического шрифта, глифы не всегда могут отображаться с запрошенными свойствами (например, шрифтом и стилем).
Метод getAllFonts класса GraphicsEnvironment возвращает массив всех начертаний шрифтов, доступных в системе. Эти начертания возвращаются в виде объектов Font с размером 1, единичным преобразованием и атрибутами шрифта по умолчанию. На основе этих базовых шрифтов затем можно создавать новые объекты Font с различными размерами, стилями, преобразованиями и атрибутами шрифта с помощью методов deriveFont этого класса.
Font и TextAttribute
Font поддерживает большинство TextAttributes. Это делает некоторые операции, например отображение подчеркнутого текста, удобными, поскольку нет необходимости явно создавать объект TextLayout. Атрибуты можно задать для Font, создав его или получив на его основе новый с помощью Map значений TextAttribute.
Некоторые значения TextAttributes не сериализуются, поэтому при попытке сериализовать экземпляр Font, содержащий такие значения, они не будут сериализованы. Это означает, что Font, десериализованный из такого потока, не будет равен исходному Font, содержавшему несериализуемые атрибуты. Это крайне редко становится проблемой, поскольку такие атрибуты обычно используются только в особых случаях и вряд ли будут сериализованы.
-
FOREGROUNDиBACKGROUNDиспользуют значенияPaint. ПодклассColorсериализуем, аGradientPaintиTexturePaint— нет. -
CHAR_REPLACEMENTиспользует значенияGraphicAttribute. ПодклассыShapeGraphicAttributeиImageGraphicAttributeне сериализуются. -
INPUT_METHOD_HIGHLIGHTиспользует значенияInputMethodHighlight, которые не сериализуются. См.InputMethodHighlight.
Клиенты, создающие пользовательские подклассы Paint и GraphicAttribute, могут сделать их сериализуемыми и избежать этой проблемы. Клиенты, использующие выделения метода ввода, могут преобразовать их в платформенные атрибуты для этого выделения на текущей платформе и задать их для Font в качестве обходного решения.
Конструктор на основе Map и API deriveFont игнорируют атрибут FONT, и Font его не сохраняет; если атрибут FONT может присутствовать, следует использовать статический метод getFont(Map). Дополнительную информацию см. в разделе TextAttribute.FONT.
Некоторые атрибуты увеличивают накладные расходы на отображение и могут вызывать выполнение компоновки. Если у Font есть такие атрибуты, метод вернет true.hasLayoutAttributes()
Примечание. Поворот шрифтов может приводить к повороту базовых линий текста. Чтобы учесть эту (редкую) возможность, в спецификациях API шрифтов указано, что они возвращают метрики и принимают параметры «в координатах относительно базовой линии». При таком представлении координата «x» соответствует продвижению вдоль базовой линии (положительное направление x направлено вперед вдоль базовой линии), а координата «y» — расстоянию вдоль перпендикуляра к базовой линии в точке «x» (положительное направление y отклонено на 90 градусов по часовой стрелке от вектора базовой линии). В API, для которых это особенно важно, явно указано, что они используют «координаты относительно базовой линии».
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
BOLD |
Константа стиля bold. |
static final int |
CENTER_BASELINE |
Базовая линия, используемая в идеографических письменностях, таких как китайская, японская и корейская, при компоновке текста. |
static final String |
DIALOG |
Строковая константа, содержащая каноническое имя семейства логического шрифта "Dialog". |
static final String |
DIALOG_INPUT |
Строковая константа, содержащая каноническое имя семейства логического шрифта "DialogInput". |
static final int |
HANGING_BASELINE |
Базовая линия, используемая в деванагари и подобных письменностях при компоновке текста. |
static final int |
ITALIC |
Константа курсивного стиля. |
static final int |
LAYOUT_LEFT_TO_RIGHT |
Флаг для layoutGlyphVector, указывающий, что, согласно анализу Bidi, текст записан слева направо. |
static final int |
LAYOUT_NO_LIMIT_CONTEXT |
Флаг для layoutGlyphVector, указывающий, что текст в массиве символов после указанного предела не следует анализировать. |
static final int |
LAYOUT_NO_START_CONTEXT |
Флаг для layoutGlyphVector, указывающий, что текст в массиве символов перед указанным началом не следует анализировать. |
static final int |
LAYOUT_RIGHT_TO_LEFT |
Флаг для layoutGlyphVector, указывающий, что, согласно анализу Bidi, текст записан справа налево. |
static final String |
MONOSPACED |
Строковая константа, содержащая каноническое имя семейства логического шрифта "Monospaced". |
protected String |
name |
Логическое имя этого Font, переданное конструктору. |
static final int |
PLAIN |
Константа обычного стиля. |
protected float |
pointSize |
Размер этого Font в пунктах, заданный в float. |
static final int |
ROMAN_BASELINE |
Базовая линия, используемая в большинстве латинских письменностей при компоновке текста. |
static final String |
SANS_SERIF |
Строковая константа, содержащая каноническое имя семейства логического шрифта "SansSerif". |
static final String |
SERIF |
Строковая константа, содержащая каноническое имя семейства логического шрифта "Serif". |
protected int |
size |
Размер этого Font в пунктах, округленный до целого числа. |
protected int |
style |
Стиль этого Font, переданный конструктору. |
static final int |
TRUETYPE_FONT |
Обозначает ресурс шрифта типа TRUETYPE. |
static final int |
TYPE1_FONT |
Обозначает ресурс шрифта типа TYPE1. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает новый Font из указанного font. |
|
| Создает новый Font с указанными именем, стилем и размером в пунктах. |
||
| Создает новый Font с указанными атрибутами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
canDisplay |
Проверяет, есть ли в этом Font глиф для указанного символа. |
boolean |
canDisplay |
Проверяет, есть ли в этом Font глиф для указанного символа. |
int |
canDisplayUpTo |
Указывает, может ли этот Font отображать символы в указанном text, начиная с start и заканчивая limit. |
int |
canDisplayUpTo |
Указывает, может ли этот Font отображать указанный String. |
int |
canDisplayUpTo |
Указывает, может ли этот Font отображать текст, заданный в iter, начиная с start и заканчивая limit. |
static Font |
createFont |
Возвращает новый Font, используя указанный тип шрифта и указанный файл шрифта. |
static Font |
createFont |
Возвращает новый Font, используя указанный тип шрифта и входные данные. |
static Font[] |
createFonts |
Возвращает новый массив объектов Font, декодированных из указанного файла. |
static Font[] |
createFonts |
Возвращает новый массив объектов Font, декодированных из указанного потока. |
GlyphVector |
createGlyphVector |
Создает GlyphVector, взаимно однозначно сопоставляя символы глифам на основе таблицы Unicode cmap в этом Font. |
GlyphVector |
createGlyphVector |
Создает GlyphVector, взаимно однозначно сопоставляя символы глифам на основе таблицы Unicode cmap в этом Font. |
GlyphVector |
createGlyphVector |
Создает GlyphVector, взаимно однозначно сопоставляя символы глифам на основе таблицы Unicode cmap в этом Font. |
GlyphVector |
createGlyphVector |
Создает GlyphVector, взаимно однозначно сопоставляя указанные символы глифам на основе таблицы Unicode cmap в этом Font. |
static Font |
decode |
Возвращает Font, описываемый аргументом str. |
Font |
deriveFont |
Создает новый объект Font, копируя текущий объект Font и задавая ему новый размер. |
Font |
deriveFont |
Создает новый объект Font, копируя текущий объект Font и задавая ему новый стиль. |
Font |
deriveFont |
Создает новый объект Font, копируя этот объект Font и задавая ему новые стиль и размер. |
Font |
deriveFont |
Создает новый объект Font, копируя этот объект Font и задавая ему новые стиль и преобразование. |
Font |
deriveFont |
Создает новый объект Font, копируя текущий объект Font и применяя к нему новое преобразование. |
Font |
deriveFont |
Создает новый объект Font, копируя текущий объект Font и применяя к нему новый набор атрибутов шрифта. |
boolean |
equals |
Сравнивает этот объект Font с указанным Object. |
Map |
getAttributes() |
Возвращает карту атрибутов шрифта, доступных в этом Font. |
AttributedCharacterIterator.Attribute[] |
getAvailableAttributes() |
Возвращает ключи всех атрибутов, поддерживаемых этим Font. |
byte |
getBaselineFor |
Возвращает базовую линию, подходящую для отображения этого символа. |
String |
getFamily() |
Возвращает имя семейства этого Font. |
String |
getFamily |
Возвращает имя семейства этого Font с учетом указанной локали. |
static Font |
getFont |
Возвращает объект Font из списка системных свойств. |
static Font |
getFont |
Получает указанный Font из списка системных свойств. |
static Font |
getFont |
Возвращает Font, соответствующий атрибутам. |
String |
getFontName() |
Возвращает имя начертания этого Font. |
String |
getFontName |
Возвращает имя начертания Font с учетом указанной локали. |
float |
getItalicAngle() |
Возвращает угол наклона этого Font. |
LineMetrics |
getLineMetrics |
Возвращает объект LineMetrics, созданный с указанными аргументами. |
LineMetrics |
getLineMetrics |
Возвращает объект LineMetrics, созданный с указанными аргументами. |
LineMetrics |
getLineMetrics |
|
LineMetrics |
getLineMetrics |
Возвращает объект LineMetrics, созданный с указанными аргументами. |
Rectangle2D |
getMaxCharBounds |
Возвращает границы символа с максимальными границами, определенными в указанном 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 |
Возвращает логические границы указанного массива символов в указанном FontRenderContext. |
Rectangle2D |
getStringBounds |
Возвращает логические границы указанного String в указанном FontRenderContext. |
Rectangle2D |
getStringBounds |
Возвращает логические границы указанного String в указанном FontRenderContext. |
Rectangle2D |
getStringBounds |
Возвращает логические границы символов, индексированных в указанном CharacterIterator, в указанном FontRenderContext. |
int |
getStyle() |
Возвращает стиль этого Font. |
AffineTransform |
getTransform() |
Возвращает копию преобразования, связанного с этим Font. |
int |
hashCode() |
Возвращает хеш-код этого Font. |
boolean |
hasLayoutAttributes() |
Возвращает true, если этот Font содержит атрибуты, требующие дополнительной обработки при компоновке. |
boolean |
hasUniformLineMetrics() |
Проверяет, имеет ли этот Font единообразные метрики строки. |
boolean |
isBold() |
Указывает, имеет ли стиль этого объекта Font значение BOLD. |
boolean |
isItalic() |
Указывает, имеет ли стиль этого объекта Font значение ITALIC. |
boolean |
isPlain() |
Указывает, имеет ли стиль этого объекта Font значение PLAIN. |
boolean |
isTransformed() |
Указывает, имеет ли этот объект Font преобразование, влияющее на его размер помимо атрибута Size. |
GlyphVector |
layoutGlyphVector |
Возвращает новый объект GlyphVector, по возможности выполняя полную компоновку текста. |
static boolean |
textRequiresLayout |
Возвращает true, если какая-либо часть указанного текста относится к сложной письменности, для правильного отображения которой при использовании drawString(String,int,int) и других методов отображения текста реализация должна выполнить обработку компоновки. |
String |
toString() |
Преобразует этот объект Font в представление String. |
Подробное описание полей
DIALOG
public static final String DIALOG
- Начиная с:
- 1.6
- См. также:
DIALOG_INPUT
public static final String DIALOG_INPUT
- Начиная с:
- 1.6
- См. также:
SANS_SERIF
public static final String SANS_SERIF
- Начиная с:
- 1.6
- См. также:
SERIF
public static final String SERIF
- Начиная с:
- 1.6
- См. также:
MONOSPACED
public static final String MONOSPACED
- Начиная с:
- 1.6
- См. также:
PLAIN
public static final int PLAIN
- См. также:
BOLD
public static final int BOLD
- См. также:
ITALIC
public static final int ITALIC
- См. также:
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
createFont(int, InputStream). Формат TrueType был расширен до формата OpenType, который добавляет поддержку шрифтов с контурами PostScript. Поэтому этот тег ссылается как на такие шрифты, так и на шрифты с контурами TrueType.- Начиная с:
- 1.3
- См. также:
TYPE1_FONT
public static final int TYPE1_FONT
createFont(int, InputStream).- Начиная с:
- 1.5
- См. также:
name
protected String name
Font, переданное конструктору.- Начиная с:
- 1.0
- См. также:
style
protected int style
Font, переданное конструктору. Начертанием может быть PLAIN, BOLD, ITALIC или BOLD+ITALIC.- Начиная с:
- 1.0
- См. также:
size
protected int size
Font в пунктах, округленный до целого числа.- Начиная с:
- 1.0
- См. также:
pointSize
protected float pointSize
Font в пунктах, заданный как float.- См. также:
LAYOUT_LEFT_TO_RIGHT
public static final int LAYOUT_LEFT_TO_RIGHT
- См. также:
LAYOUT_RIGHT_TO_LEFT
public static final int LAYOUT_RIGHT_TO_LEFT
- См. также:
LAYOUT_NO_START_CONTEXT
public static final int LAYOUT_NO_START_CONTEXT
- См. также:
LAYOUT_NO_LIMIT_CONTEXT
public static final int LAYOUT_NO_LIMIT_CONTEXT
- См. также:
Подробное описание конструкторов
Font
public Font(String name, int style, int size)
Font из указанного имени, начертания и размера в пунктах. Имя шрифта может быть названием гарнитуры или названием семейства шрифтов. Оно используется вместе с начертанием для выбора подходящей гарнитуры. Если указано имя семейства шрифтов, аргумент начертания используется для выбора наиболее подходящей гарнитуры из семейства. Если указано название гарнитуры, начертание гарнитуры объединяется с аргументом начертания, чтобы найти наиболее подходящий шрифт из того же семейства. Например, если имя гарнитуры "Arial Bold" указано с начертанием Font.ITALIC, система шрифтов ищет гарнитуру семейства "Arial" с полужирным курсивным начертанием и может связать экземпляр шрифта с физической гарнитурой "Arial Bold Italic". Аргумент начертания объединяется с указанным начертанием гарнитуры, а не добавляется к нему и не вычитается из него. Это означает, что указание полужирной гарнитуры и полужирного начертания не делает шрифт вдвойне полужирным, а указание полужирной гарнитуры и обычного начертания не делает шрифт светлее.
Если гарнитуру с запрошенным начертанием найти не удается, система шрифтов может применить алгоритмическое форматирование для достижения требуемого начертания. Например, если запрошено ITALIC, но курсивная гарнитура недоступна, символы обычной гарнитуры могут быть алгоритмически наклонены.
Поиск имени шрифта нечувствителен к регистру и выполняется с использованием правил преобразования регистра для локали США.
Если параметр name представляет собой не логический шрифт, то есть интерпретируется как физическая гарнитура или семейство шрифтов, и реализация не может сопоставить его с физическим шрифтом или совместимой альтернативой, система шрифтов сопоставит экземпляр Font со шрифтом "Dialog". Например, семейство, возвращаемое методом getFamily, будет иметь значение "Dialog".
- Параметры:
-
name— имя шрифта. Это может быть названием гарнитуры или семейства шрифтов, а также может представлять логический или физический шрифт, найденный в этойGraphicsEnvironment. Имена семейств логических шрифтов: Dialog, DialogInput, Monospaced, Serif или SansSerif. Для всех этих имен определены предварительно заданные строковые константы, например,DIALOG. Еслиnameимеет значениеnull, логическое имя шрифта новогоFont, возвращаемое методомgetName(), устанавливается равным имени "Default". -
style— константа начертания дляFont. Аргумент начертания представляет собой целочисленную битовую маску, которая может иметь значениеPLAINили быть побитовым объединениемBOLDи/илиITALIC(например,ITALICилиBOLD|ITALIC). Если аргумент начертания не соответствует одной из ожидаемых целочисленных битовых масок, для начертания устанавливается значениеPLAIN. -
size— размерFontв пунктах - Начиная с:
- 1.0
- См. также:
Font
public Font(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
Font с указанными атрибутами. Распознаются только ключи, определенные в TextAttribute. Кроме того, атрибут FONT этим конструктором не распознается (см. getAvailableAttributes()). На новый Font влияют только атрибуты со значениями допустимых типов. Если attributes имеет значение null, новый Font инициализируется значениями по умолчанию.
- Параметры:
-
attributes— атрибуты, назначаемые новомуFont, илиnull - См. также:
Font
protected Font(Font font)
Font из указанного font. Этот конструктор предназначен для использования подклассами.- Параметры:
-
font— источник, из которого создается этотFont. - Исключения:
-
NullPointerException— еслиfontравен null - Начиная с:
- 1.6
Подробное описание методов
textRequiresLayout
public static boolean textRequiresLayout(char[] chars, int start, int end)
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
- См. также:
createFonts
public static Font[] createFonts(InputStream fontStream) throws FontFormatException, IOException
Font, декодированных из указанного потока. Возвращенный массив Font[] содержит как минимум один элемент. Эта версия метода createFont(int, InputStream) предназначена специально для поддержки источников шрифтов, представляющих собой коллекцию шрифтов TrueType/OpenType, и позволяет возвращать все отдельные шрифты из этой коллекции. Поэтому метод выбрасывает FontFormatException, если источник данных не содержит хотя бы одного шрифта TrueType/OpenType. Это же исключение выбрасывается, если в каком-либо шрифте коллекции отсутствуют необходимые таблицы шрифта.
Условие «как минимум один» позволяет потоку представлять один шрифт OpenType/TrueType, то есть поток не обязательно должен содержать коллекцию. Каждый элемент Font возвращаемого массива создается с размером 1 пункт и начертанием PLAIN. Затем этот базовый шрифт можно использовать с методами deriveFont этого класса для создания новых объектов Font с различными размерами, начертаниями, преобразованиями и функциями шрифта.
Этот метод не закрывает InputStream.
Чтобы каждый Font был доступен конструкторам Font, его необходимо зарегистрировать в GraphicsEnvironment, вызвав registerFont(Font).
- Параметры:
-
fontStream— объектInputStream, представляющий входные данные для шрифта или коллекции шрифтов. - Возвращает:
- новый
Font[]. - Исключения:
-
FontFormatException— если данныеfontStreamне содержат необходимых таблиц шрифта для какого-либо элемента коллекции или если не содержат ни одного шрифта. -
IOException— еслиfontStreamне удается полностью прочитать. - Начиная с:
- 9
- См. также:
createFonts
public static Font[] createFonts(File fontFile) throws FontFormatException, IOException
Font, декодированных из указанного файла. Возвращенный массив Font[] содержит как минимум один элемент. Эта версия метода createFont(int, File) предназначена специально для поддержки источников шрифтов, представляющих собой коллекцию шрифтов TrueType/OpenType, и позволяет возвращать все отдельные шрифты из этой коллекции. Поэтому метод выбрасывает FontFormatException, если источник данных не содержит хотя бы одного шрифта TrueType/OpenType. Это же исключение выбрасывается, если в каком-либо шрифте коллекции отсутствуют необходимые таблицы шрифта.
Условие «как минимум один» позволяет потоку представлять один шрифт OpenType/TrueType, то есть поток не обязательно должен содержать коллекцию. Каждый элемент Font возвращаемого массива создается с размером 1 пункт и начертанием PLAIN. Затем этот базовый шрифт можно использовать с методами deriveFont этого класса для создания новых объектов Font с различными размерами, начертаниями, преобразованиями и функциями шрифта.
Чтобы каждый Font был доступен конструкторам Font, его необходимо зарегистрировать в GraphicsEnvironment, вызвав registerFont(Font).
- Параметры:
-
fontFile— объектFile, содержащий входные данные для шрифта или коллекции шрифтов. - Возвращает:
- новый
Font[]. - Исключения:
-
FontFormatException— еслиFileне содержит необходимых таблиц шрифта для какого-либо элемента коллекции или если не содержит ни одного шрифта. -
IOException— еслиfontFileне удается прочитать. - Начиная с:
- 9
- См. также:
createFont
public static Font createFont(int fontFormat, InputStream fontStream) throws FontFormatException, IOException
Font, используя указанный тип шрифта и входные данные. Новый Font создается с размером 1 пункт и начертанием PLAIN. Затем этот базовый шрифт можно использовать с методами deriveFont этого класса для создания новых объектов Font с различными размерами, начертаниями, преобразованиями и функциями шрифта. Этот метод не закрывает InputStream. Чтобы сделать Font доступным конструкторам Font, возвращенный Font необходимо зарегистрировать в GraphicsEnvironment, вызвав registerFont(Font).
- Параметры:
-
fontFormat— типFont:TRUETYPE_FONT, если указан ресурс TrueType, илиTYPE1_FONT, если указан ресурс Type 1. -
fontStream— объектInputStream, представляющий входные данные для шрифта. - Возвращает:
- новый
Font, созданный с указанным типом шрифта. - Исключения:
-
IllegalArgumentException— еслиfontFormatне является ниTRUETYPE_FONT, ниTYPE1_FONT. -
FontFormatException— если данныеfontStreamне содержат необходимых таблиц шрифта для указанного формата. -
IOException— еслиfontStreamне удается полностью прочитать. - Начиная с:
- 1.3
- См. также:
createFont
public static Font createFont(int fontFormat, File fontFile) throws FontFormatException, IOException
Font, используя указанный тип шрифта и указанный файл шрифта. Новый Font создается с размером 1 пункт и начертанием PLAIN. Затем этот базовый шрифт можно использовать с методами deriveFont этого класса для создания новых объектов Font с различными размерами, начертаниями, преобразованиями и функциями шрифта.- Параметры:
-
fontFormat— типFont:TRUETYPE_FONT, если указан ресурс TrueType, илиTYPE1_FONT, если указан ресурс Type 1. Пока возвращенный шрифт или производные от него шрифты используются, реализация может продолжать обращаться кfontFileдля получения данных шрифта. Поэтому результаты не определены, если файл изменен или становится недоступным.Чтобы сделать
Fontдоступным конструкторам Font, возвращенныйFontнеобходимо зарегистрировать вGraphicsEnvironment, вызвавregisterFont(Font). -
fontFile— объектFile, представляющий входные данные для шрифта. - Возвращает:
- новый
Font, созданный с указанным типом шрифта. - Исключения:
-
IllegalArgumentException— еслиfontFormatне является ниTRUETYPE_FONT, ниTYPE1_FONT. -
NullPointerException— еслиfontFileравен null. -
IOException— еслиfontFileне удается прочитать. -
FontFormatException— еслиfontFileне содержит необходимых таблиц шрифта для указанного формата. - Начиная с:
- 1.5
- См. также:
getTransform
public AffineTransform getTransform()
Font. Это преобразование не обязательно совпадает с тем, которое использовалось для создания шрифта. Если для шрифта применено алгоритмическое надстрочное начертание или корректировка ширины, это будет учтено в возвращенном AffineTransform. Обычно шрифты не преобразуются. Как правило, клиентам следует сначала вызвать isTransformed() и вызывать этот метод, только если isTransformed возвращает true.
- Возвращает:
- объект
AffineTransform, представляющий атрибут преобразования этого объектаFont.
getFamily
public String getFamily()
Font. Имя семейства шрифта зависит от конкретного шрифта. Два шрифта, например Helvetica Italic и Helvetica Bold, имеют одинаковое имя семейства — Helvetica, но названия их гарнитур различаются: Helvetica Bold и Helvetica Italic. Список доступных имен семейств можно получить с помощью метода GraphicsEnvironment.getAvailableFontFamilyNames().
Используйте getName, чтобы получить логическое имя шрифта. Используйте getFontName, чтобы получить название гарнитуры шрифта.
- Возвращает:
- объект
String, представляющий имя семейства этогоFont. - Начиная с:
- 1.1
- См. также:
getFamily
public String getFamily(Locale l)
Font, локализованное для указанной локали. Имя семейства шрифта зависит от конкретного шрифта. Два шрифта, например Helvetica Italic и Helvetica Bold, имеют одинаковое имя семейства — Helvetica, но названия их гарнитур различаются: Helvetica Bold и Helvetica Italic. Список доступных имен семейств можно получить с помощью метода GraphicsEnvironment.getAvailableFontFamilyNames().
Используйте getFontName, чтобы получить название гарнитуры шрифта.
- Параметры:
-
l— локаль, для которой нужно получить имя семейства - Возвращает:
- объект
String, представляющий имя семейства шрифта, локализованное для указанной локали. - Начиная с:
- 1.2
- См. также:
getPSName
public String getPSName()
Font. Используйте getFamily, чтобы получить имя семейства шрифта. Используйте getFontName, чтобы получить имя начертания шрифта.- Возвращает:
- значение
String, представляющее имя PostScript этогоFont. - Начиная с:
- 1.2
getName
public String getName()
Font. Используйте getFamily, чтобы получить имя семейства шрифта. Используйте getFontName, чтобы получить имя начертания шрифта.- Возвращает:
- значение
String, представляющее логическое имя этогоFont. - Начиная с:
- 1.0
- См. также:
getFontName
public String getFontName()
Font. Например, в качестве имени начертания может быть возвращено Helvetica Bold. Используйте getFamily, чтобы получить имя семейства шрифта. Используйте getName, чтобы получить логическое имя шрифта.- Возвращает:
- значение
String, представляющее имя начертания этогоFont. - Начиная с:
- 1.2
- См. также:
getFontName
public String getFontName(Locale l)
Font, локализованное для указанной локали. Например, в качестве имени начертания может быть возвращено Helvetica Fett. Используйте getFamily, чтобы получить имя семейства шрифта.- Параметры:
-
l— локаль, для которой нужно получить имя начертания - Возвращает:
- значение
String, представляющее имя начертания, локализованное для указанной локали. - См. также:
getStyle
public int getStyle()
Font. Стилем может быть PLAIN, BOLD, ITALIC или BOLD+ITALIC.- Возвращает:
- стиль этого
Font - Начиная с:
- 1.0
- См. также:
getSize
public int getSize()
Font в пунктах, округлённый до целого числа. Большинству пользователей знакомо понятие размера в пунктах, используемого для указания размера глифов шрифта. Этот размер в пунктах определяет расстояние от базовой линии одной строки до базовой линии следующей строки в документе с одинарным межстрочным интервалом. Размер в пунктах основан на типографских пунктах, приблизительно равных 1/72 дюйма. В API Java(tm)2D принято считать, что один пункт эквивалентен одной единице в пользовательских координатах. При использовании нормализующего преобразования для перевода координат пользовательского пространства в координаты пространства устройства 72 единицы пользовательского пространства равны 1 дюйму в пространстве устройства. В этом случае один пункт равен 1/72 дюйма.
- Возвращает:
- размер этого
Fontв пунктах, выраженный в единицах 1/72 дюйма. - Начиная с:
- 1.0
- См. также:
getSize2D
public float getSize2D()
Font в пунктах в виде значения float.- Возвращает:
- размер этого
Fontв пунктах в виде значенияfloat. - Начиная с:
- 1.2
- См. также:
isPlain
public boolean isPlain()
Font значение PLAIN.- Возвращает:
-
true, если этотFontимеет стиль PLAIN; в противном случае —false. - Начиная с:
- 1.0
- См. также:
isBold
public boolean isBold()
Font значение BOLD.- Возвращает:
-
true, если стиль этого объектаFontимеет значение BOLD; в противном случае —false. - Начиная с:
- 1.0
- См. также:
isItalic
public boolean isItalic()
Font значение ITALIC.- Возвращает:
-
true, если стиль этого объектаFontимеет значение ITALIC; в противном случае —false. - Начиная с:
- 1.0
- См. также:
isTransformed
public boolean isTransformed()
Font преобразование, влияющее на его размер в дополнение к атрибуту Size.- Возвращает:
-
true, если этот объектFontимеет атрибут AffineTransform, отличный от тождественного. В противном случае —false. - Начиная с:
- 1.4
- См. также:
hasLayoutAttributes
public boolean hasLayoutAttributes()
- Возвращает:
- 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
public static Font decode(String str)
Font, описываемый аргументом str. Чтобы гарантировать, что этот метод вернёт нужный Font, задайте параметр str одним из следующих способов: - fontname-style-pointsize
- fontname-pointsize
- fontname-style
- fontname
- fontname style pointsize
- fontname pointsize
- fontname style
- fontname
"PLAIN", "BOLD", "BOLDITALIC" или "ITALIC", а pointsize — положительное целое десятичное число, представляющее размер в пунктах. Например, чтобы получить шрифт Arial, полужирный, размером 18 пунктов, вызовите этот метод со значением "Arial-BOLD-18". Это эквивалентно вызову конструктора Font: new Font("Arial", Font.BOLD, 18);; значения интерпретируются в соответствии со спецификацией этого конструктора. Допустимое завершающее десятичное поле всегда интерпретируется как размер в пунктах. Поэтому в форме, содержащей только имя шрифта, не следует указывать имя, заканчивающееся десятичным значением.
Если поле имени стиля не совпадает ни с одной из допустимых строк стиля, оно интерпретируется как часть имени шрифта, а используется стиль по умолчанию.
Для разделения полей во входных данных можно использовать только один из символов: « » или «-». Выбирается разделитель, расположенный ближе всего к концу строки и отделяющий допустимый размер в пунктах или допустимое имя стиля от остальной части строки. Пустые поля размера в пунктах и стиля считаются допустимыми и получают значения по умолчанию для соответствующих полей.
Некоторые имена шрифтов могут содержать символы-разделители « » или «-». Если str состоит не из трёх компонентов, например если в str отсутствуют поля style или pointsize, и fontname также содержит символ, определённый как символ-разделитель, то эти символы, предназначенные для включения в fontname, могут быть интерпретированы как разделители, из-за чего имя шрифта может распознаться неправильно.
Размер по умолчанию — 12, стиль по умолчанию — PLAIN. Если str не задаёт допустимый размер, возвращаемый Font имеет размер 12. Если str не задаёт допустимый стиль, возвращаемый Font имеет стиль PLAIN. Если в аргументе str не указано допустимое имя шрифта, этот метод вернёт шрифт с именем семейства "Dialog". Чтобы узнать, какие имена семейств шрифтов доступны в вашей системе, используйте метод GraphicsEnvironment.getAvailableFontFamilyNames(). Если str равно null, возвращается новый Font с именем семейства "Dialog", размером 12 и стилем PLAIN.
- Параметры:
-
str— имя шрифта илиnull - Возвращает:
- объект
Font, описываемый значениемstr, или новый шрифтFontпо умолчанию, еслиstrравноnull. - Начиная с:
- 1.1
- См. также:
getFont
public static Font getFont(String nm, Font font)
Font из списка системных свойств. Как и в методе getProperty класса System, первый аргумент рассматривается как имя системного свойства, значение которого требуется получить. Затем значение String этого свойства интерпретируется как объект Font. Значение свойства должно иметь один из форматов, принимаемых методом Font.decode(String). Если указанное свойство не найдено, вместо него возвращается аргумент font.
- Параметры:
-
nm— имя свойства без учёта регистра -
font— шрифтFontпо умолчанию, возвращаемый, если свойствоnmне определено - Возвращает:
- значение свойства
Font. - Выбрасывает:
-
NullPointerException— если nm равно null. - См. также:
hashCode
equals
public boolean equals(Object obj)
Font с указанным Object.toString
getNumGlyphs
public int getNumGlyphs()
Font. Коды глифов для этого Font находятся в диапазоне от 0 до getNumGlyphs() - 1.- Возвращает:
- количество глифов в этом
Font. - Начиная с:
- 1.2
getMissingGlyphCode
public int getMissingGlyphCode()
Font отсутствует глиф для указанной кодовой точки Unicode.- Возвращает:
- glyphCode этого
Font. - Начиная с:
- 1.2
getBaselineFor
public byte getBaselineFor(char c)
Шрифты большого размера могут поддерживать разные системы письма, и в каждой системе может использоваться своя базовая линия. Аргумент-символ определяет используемую систему письма. Клиентам не следует предполагать, что для всех символов используется одна и та же базовая линия.
- Параметры:
-
c— символ, используемый для определения системы письма - Возвращает:
- базовую линию, подходящую для указанного символа.
- Начиная с:
- 1.2
- См. также:
getAttributes
public Map<TextAttribute, ?> getAttributes()
Font. К атрибутам относятся, например, лигатуры и подстановка глифов.- Возвращает:
- карту атрибутов этого
Font.
getAvailableAttributes
public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
Font. Эти атрибуты можно использовать для создания производных шрифтов.- Возвращает:
- массив, содержащий ключи всех атрибутов, поддерживаемых этим
Font. - Начиная с:
- 1.2
deriveFont
public Font deriveFont(int style, float size)
Font, копируя этот объект Font и применяя новый стиль и размер.- Параметры:
-
style— стиль новогоFont -
size— размер новогоFont - Возвращает:
- новый объект
Font. - Начиная с:
- 1.2
deriveFont
public Font deriveFont(int style, AffineTransform trans)
Font, копируя этот объект Font и применяя новый стиль и преобразование.- Параметры:
-
style— стиль новогоFont -
trans—AffineTransform, связанное с новымFont - Возвращает:
- новый объект
Font. - Выбрасывает:
-
IllegalArgumentException— еслиtransравноnull - Начиная с:
- 1.2
deriveFont
public Font deriveFont(float size)
Font, копируя текущий объект Font и задавая ему новый размер.- Параметры:
-
size— размер новогоFont. - Возвращает:
- новый объект
Font. - Начиная с:
- 1.2
deriveFont
public Font deriveFont(AffineTransform trans)
Font, копируя текущий объект Font и применяя к нему новое преобразование.- Параметры:
-
trans—AffineTransform, связанное с новымFont - Возвращает:
- новый объект
Font. - Выбрасывает:
-
IllegalArgumentException— еслиtransравноnull - Начиная с:
- 1.2
deriveFont
public Font deriveFont(int style)
Font, копируя текущий объект Font и применяя к нему новый стиль.- Параметры:
-
style— стиль новогоFont - Возвращает:
- новый объект
Font. - Начиная с:
- 1.2
deriveFont
public Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute, ?> attributes)
Font, копируя текущий объект Font и применяя к нему новый набор атрибутов шрифта.- Параметры:
-
attributes— карта атрибутов, включённых для новогоFont - Возвращает:
- новый объект
Font. - Начиная с:
- 1.2
canDisplay
public boolean canDisplay(char c)
Font глиф для указанного символа. Примечание: Этот метод не поддерживает дополнительные символы. Для поддержки всех символов Unicode, включая дополнительные символы, используйте метод canDisplay(int) или методы canDisplayUpTo.
- Параметры:
-
c— символ, для которого требуется глиф - Возвращает:
-
true, если в этомFontесть глиф для данного символа; в противном случае —false. - Начиная с:
- 1.2
canDisplay
public boolean canDisplay(int codePoint)
Font глиф для указанного символа.- Параметры:
-
codePoint— символ (кодовая точка Unicode), для которого требуется глиф. - Возвращает:
-
true, если в этомFontесть глиф для данного символа; в противном случае —false. - Выбрасывает:
-
IllegalArgumentException— если кодовая точка не является допустимой кодовой точкой Unicode. - Начиная с:
- 1.5
- См. также:
canDisplayUpTo
public int canDisplayUpTo(String str)
Font отображать указанную String. Для строк в кодировке Unicode важно знать, может ли конкретный шрифт отображать данную строку. Этот метод возвращает смещение в String str, соответствующее первому символу, который этот Font не может отобразить без использования кода отсутствующего глифа. Если Font может отображать все символы, возвращается -1.- Параметры:
-
str— объектString - Возвращает:
- смещение в
str, указывающее на первый символ вstr, который этотFontне может отобразить; или-1, если этотFontможет отображать все символы вstr. - Начиная с:
- 1.2
canDisplayUpTo
public int canDisplayUpTo(char[] text, int start, int limit)
Font отображать символы в указанном text, начиная с start и заканчивая limit. Этот метод является удобной перегрузкой.- Параметры:
-
text— указанный массив значенийchar -
start— указанное начальное смещение (вcharах) в указанном массиве значенийchar -
limit— указанное конечное смещение (вcharах) в указанном массиве значенийchar - Возвращает:
- смещение в
text, указывающее на первый символ вtext, который этотFontне может отобразить; или-1, если этотFontможет отображать все символы вtext. - Начиная с:
- 1.2
canDisplayUpTo
public int canDisplayUpTo(CharacterIterator iter, int start, int limit)
Font отображать текст, заданный объектом iter, начиная с start и заканчивая limit.- Параметры:
-
iter— объектCharacterIterator -
start— указанное начальное смещение в указанномCharacterIterator. -
limit— указанное конечное смещение в указанномCharacterIterator. - Возвращает:
- смещение в
iter, указывающее на первый символ вiter, который этотFontне может отобразить; или-1, если этотFontможет отображать все символы вiter. - Начиная с:
- 1.2
getItalicAngle
public float getItalicAngle()
Font. Угол наклона — это обратный наклон курсора, который лучше всего соответствует начертанию этого Font.- Возвращает:
- угол наклона стиля ITALIC этого
Font. - См. также:
hasUniformLineMetrics
public boolean hasUniformLineMetrics()
Font единообразные метрики строк. Логический Font может быть составным шрифтом, то есть состоять из нескольких физических шрифтов, охватывающих разные диапазоны кодов. Каждый из этих шрифтов может иметь разные LineMetrics. Если логический Font состоит из одного шрифта, метрики будут единообразными.- Возвращает:
-
true, если этотFontимеет единообразные метрики строк; в противном случае —false.
getLineMetrics
public LineMetrics getLineMetrics(String str, FontRenderContext frc)
- Параметры:
-
str— указанныйString -
frc— указанныйFontRenderContext - Возвращает:
- объект
LineMetrics, созданный с использованием указанногоStringиFontRenderContext.
getLineMetrics
public LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)
LineMetrics, созданный с использованием указанных аргументов.- Параметры:
-
str— указанныйString -
beginIndex— начальное смещениеstr -
limit— конечное смещениеstr -
frc— указанныйFontRenderContext - Возвращает:
- объект
LineMetrics, созданный с использованием указанных аргументов.
getLineMetrics
public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)
LineMetrics, созданный с указанными аргументами.- Параметры:
-
chars— массив символов -
beginIndex— начальное смещениеchars -
limit— конечное смещениеchars -
frc— указанныйFontRenderContext - Возвращает:
- объект
LineMetrics, созданный с указанными аргументами.
getLineMetrics
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
LineMetrics, созданный с указанными аргументами.- Параметры:
-
ci— указанныйCharacterIterator -
beginIndex— начальное смещение вci -
limit— конечное смещениеci -
frc— указанныйFontRenderContext - Возвращает:
- объект
LineMetrics, созданный с указанными аргументами.
getStringBounds
public Rectangle2D getStringBounds(String str, FontRenderContext frc)
String в указанном FontRenderContext. Логические границы включают начало координат, асцент, ширину и высоту, в которую входит интерлиньяж. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и некоторых шрифтах диакритические знаки могут располагаться выше верхней границы асцента или ниже нижней границы децента. Чтобы получить визуальную ограничивающую рамку, охватывающую весь текст, используйте метод getBounds класса TextLayout. Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).
- Параметры:
-
str— указанныйString -
frc— указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющий ограничивающую рамку указанногоStringв указанномFontRenderContext.- Начиная с:
- 1.2
- См. также:
getStringBounds
public Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)
String в указанном FontRenderContext. Логические границы включают начало координат, асцент, ширину и высоту, в которую входит интерлиньяж. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и некоторых шрифтах диакритические знаки могут располагаться выше верхней границы асцента или ниже нижней границы децента. Чтобы получить визуальную ограничивающую рамку, охватывающую весь текст, используйте метод getBounds класса TextLayout. Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).
- Параметры:
-
str— указанныйString -
beginIndex— начальное смещениеstr -
limit— конечное смещениеstr -
frc— указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющий ограничивающую рамку указанногоStringв указанномFontRenderContext.- Выбрасывает:
-
IndexOutOfBoundsException— еслиbeginIndexменьше нуля,limitбольше длиныstrилиbeginIndexбольшеlimit. - Начиная с:
- 1.2
- См. также:
getStringBounds
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)
FontRenderContext. Логические границы включают начало координат, асцент, ширину и высоту, в которую входит интерлиньяж. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и некоторых шрифтах диакритические знаки могут располагаться выше верхней границы асцента или ниже нижней границы децента. Чтобы получить визуальную ограничивающую рамку, охватывающую весь текст, используйте метод getBounds класса TextLayout. Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).
- Параметры:
-
chars— массив символов -
beginIndex— начальное смещение в массиве символов -
limit— конечное смещение в массиве символов -
frc— указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющий ограничивающую рамку указанного массива символов в указанномFontRenderContext.- Выбрасывает:
-
IndexOutOfBoundsException— еслиbeginIndexменьше нуля,limitбольше длиныcharsилиbeginIndexбольшеlimit. - Начиная с:
- 1.2
- См. также:
getStringBounds
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
CharacterIterator, в указанном FontRenderContext. Логические границы включают начало координат, асцент, ширину и высоту, в которую входит интерлиньяж. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и некоторых шрифтах диакритические знаки могут располагаться выше верхней границы асцента или ниже нижней границы децента. Чтобы получить визуальную ограничивающую рамку, охватывающую весь текст, используйте метод getBounds класса TextLayout. Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).
- Параметры:
-
ci— указанныйCharacterIterator -
beginIndex— начальное смещение вci -
limit— конечное смещение вci -
frc— указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющий ограничивающую рамку символов, индексированных в указанномCharacterIterator, в указанномFontRenderContext.- Выбрасывает:
-
IndexOutOfBoundsException— еслиbeginIndexменьше начального индексаci,limitбольше конечного индексаciилиbeginIndexбольшеlimit - Начиная с:
- 1.2
- См. также:
getMaxCharBounds
public Rectangle2D getMaxCharBounds(FontRenderContext frc)
FontRenderContext. Примечание. Возвращаемые границы заданы относительно базовой линии (см. class notes).
- Параметры:
-
frc— указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющий ограничивающую рамку символа с наибольшими границами.
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc, String str)
GlyphVector, сопоставляя символы глифам один к одному на основе таблицы cmap Unicode в этом Font. Этот метод не выполняет никакой обработки, кроме сопоставления глифов символам. Это означает, что данный метод не подходит для некоторых систем письма, например арабской, еврейской, тайской и индийской, для которых требуется переупорядочивание, формирование или подстановка лигатур.- Параметры:
-
frc— указанныйFontRenderContext -
str— указанныйString - Возвращает:
- новый
GlyphVector, созданный с использованием указанногоStringи указанногоFontRenderContext.
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)
GlyphVector, сопоставляя символы глифам один к одному на основе таблицы cmap Unicode в этом Font. Этот метод не выполняет никакой обработки, кроме сопоставления глифов символам. Это означает, что данный метод не подходит для некоторых систем письма, например арабской, еврейской, тайской и индийской, для которых требуется переупорядочивание, формирование или подстановка лигатур.- Параметры:
-
frc— указанныйFontRenderContext -
chars— указанный массив символов - Возвращает:
- новый
GlyphVector, созданный с использованием указанного массива символов и указанногоFontRenderContext.
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)
GlyphVector, сопоставляя указанные символы глифам один к одному на основе таблицы cmap Unicode в этом Font. Этот метод не выполняет никакой обработки, кроме сопоставления глифов символам. Это означает, что данный метод не подходит для некоторых систем письма, например арабской, еврейской, тайской и индийской, для которых требуется переупорядочивание, формирование или подстановка лигатур.- Параметры:
-
frc— указанныйFontRenderContext -
ci— указанныйCharacterIterator - Возвращает:
- новый
GlyphVector, созданный с использованием указанногоCharacterIteratorи указанногоFontRenderContext.
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)
GlyphVector, сопоставляя символы глифам один к одному на основе таблицы cmap Unicode в этом Font. Этот метод не выполняет никакой обработки, кроме сопоставления глифов символам. Это означает, что данный метод не подходит для некоторых систем письма, например арабской, еврейской, тайской и индийской, для которых требуется переупорядочивание, формирование или подстановка лигатур.- Параметры:
-
frc— указанныйFontRenderContext -
glyphCodes— указанный массив целых чисел - Возвращает:
- новый
GlyphVector, созданный с использованием указанного массива целых чисел и указанногоFontRenderContext.
layoutGlyphVector
public GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)
GlyphVector, по возможности выполняя полную компоновку текста. Полная компоновка необходима для сложного текста, например арабского или хинди. Поддержка различных систем письма зависит от шрифта и реализации. Для компоновки требуется двунаправленный анализ, выполняемый с помощью Bidi; её следует выполнять только для текста с единым направлением письма. Направление задаётся параметром flags: LAYOUT_RIGHT_TO_LEFT указывает направление письма справа налево (арабский и иврит), а LAYOUT_LEFT_TO_RIGHT — слева направо (английский).
Кроме того, для некоторых операций, например формирования арабского текста, необходим контекст, чтобы символы в начале и на пределе диапазона могли получить правильные формы. Иногда данные в буфере за пределами указанного диапазона некорректны. К параметру flags можно добавить значения LAYOUT_NO_START_CONTEXT и LAYOUT_NO_LIMIT_CONTEXT, чтобы указать, что текст перед началом или после предела диапазона соответственно не следует анализировать как контекст.
Все остальные значения параметра flags зарезервированы.
- Параметры:
-
frc— указанныйFontRenderContext -
text— текст для компоновки -
start— начало текста, используемого дляGlyphVector -
limit— предел текста, используемого дляGlyphVector -
flags— управляющие флаги, описанные выше - Возвращает:
- новый
GlyphVector, представляющий текст между началом и пределом диапазона, с выбранными и расположенными глифами, которые наилучшим образом отображают этот текст - Выбрасывает:
-
ArrayIndexOutOfBoundsException— если начало или предел диапазона выходит за допустимые границы - Начиная с:
- 1.4
- См. также:
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/Font.html