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