Класс Font
- java.lang.Object
-
- java.awt.Font
- Все реализуемые интерфейсы:
- Serializable
- Непосредственные известные подклассы:
- FontUIResource
public class Font extends Object implements Serializable
Класс Font представляет шрифты, используемые для визуального отображения текста. Шрифт предоставляет информацию, необходимую для сопоставления последовательностей символов с последовательностями глифов и для отображения последовательностей глифов на объектах Graphics и Component.
Символы и глифы
Символ — это символ, представляющий абстрактно элемент, такой как буква, цифра или знак пунктуации. Например, 'g', латинская малая буква G, является символом.
Глиф — это форма, используемая для отображения символа или последовательности символов. В простых системах письма, таких как латинская, обычно один глиф представляет один символ. Однако, в общем случае, символы и глифы не имеют взаимно однозначного соответствия. Например, символ 'á', латинская малая буква A с острым ударением, может быть представлен двумя глифами: одним для 'a' и одним для '´'. С другой стороны, строка из двух символов "fi" может быть представлена одним глифом, лигатурой "fi". В сложных системах письма, таких как арабская или южно- и юго-восточно-азиатские системы письма, взаимоотношение между символами и глифами может быть более сложным и включать контекстно-зависимый выбор глифов, а также перестановку глифов. Шрифт инкапсулирует набор глифов, необходимых для отображения выбранного набора символов, а также таблицы, необходимые для сопоставления последовательностей символов с соответствующими последовательностями глифов.
Физические и логические шрифты
Платформа Java различает два вида шрифтов: физические и логические шрифты.Физические шрифты — это фактические библиотеки шрифтов, содержащие данные глифов и таблицы для сопоставления последовательностей символов с последовательностями глифов, используя технологию шрифтов, такую как TrueType или PostScript Type 1. Все реализации платформы Java должны поддерживать шрифты TrueType; поддержка других технологий шрифтов зависит от реализации. Физические шрифты могут использовать такие имена, как Helvetica, Palatino, HonMincho или любое другое количество имён шрифтов. Как правило, каждый физический шрифт поддерживает только ограниченный набор систем письма, например, только латинские символы или только японские и базовые латинские символы. Набор доступных физических шрифтов варьируется в зависимости от конфигурации. Приложения, которым требуются конкретные шрифты, могут упаковать их и инициализировать их с помощью метода createFont.
Логические шрифты — это пять семейств шрифтов, определённых платформой Java, которые должны поддерживаться любой средой выполнения Java: Serif, SansSerif, Monospaced, Dialog и DialogInput. Эти логические шрифты не являются фактическими библиотеками шрифтов. Вместо этого имена логических шрифтов отображаются на физические шрифты средой выполнения Java. Отображение зависит от реализации и обычно от локали, поэтому внешний вид и метрики, предоставляемые ими, варьируются. Как правило, каждое имя логического шрифта отображается на несколько физических шрифтов, чтобы охватить большой диапазон символов.
Компоненты AWT, такие как Label и TextField, могут использовать только логические шрифты.
Обсуждение относительных преимуществ и недостатков использования физических или логических шрифтов можно найти в документе Вопросы и ответы по интернационализации.
Лицо и названия шрифтов
У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 и не сохраняют его в шрифте; для случаев, когда атрибут FONT может быть присутствующим, следует использовать статический метод getFont(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>). См. TextAttribute.FONT для получения дополнительной информации.
Некоторые атрибуты приведут к дополнительной нагрузке на отображение и потенциально вызовут верстку. Если у Font есть такие атрибуты, метод вернёт true.hasLayoutAttributes()
Примечание: поворот шрифта может вызвать поворот текстовых базовых линий. Для учёта этой (редкой) возможности API шрифтов определены так, чтобы возвращать метрики и принимать параметры в координатах, относительных к базовой линии. Это сопоставляет координату 'x' с продвижением вдоль базовой линии (положительное x — это продвижение вперёд вдоль базовой линии) и координату 'y' с расстоянием вдоль перпендикуляра к базовой линии в 'x' (положительное y — это 90 градусов по часовой стрелке от вектора базовой линии). API, для которых это особенно важно, указаны как имеющие "координаты, относительные к базовой линии".
- См. также:
- Сериализованная форма
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static int |
BOLD Константа стиля «жирный». |
static int |
CENTER_BASELINE Базовая линия, используемая в идеографических системах письма, таких как китайская, японская и корейская, при выводе текста. |
static String |
DIALOG Строковая константа для канонического семейного имени логического шрифта «Dialog». |
static String |
DIALOG_INPUT Строковая константа для канонического семейного имени логического шрифта «DialogInput». |
static int |
HANGING_BASELINE Базовая линия, используемая в системах письма Деванагари и подобных при выводе текста. |
static int |
ITALIC Константа стиля «курсив». |
static int |
LAYOUT_LEFT_TO_RIGHT Флаг для layoutGlyphVector, указывающий, что текст выводится слева направо в соответствии с анализом Bidi. |
static int |
LAYOUT_NO_LIMIT_CONTEXT Флаг для layoutGlyphVector, указывающий, что текст в массиве char после указанного предела не должен рассматриваться. |
static int |
LAYOUT_NO_START_CONTEXT Флаг для layoutGlyphVector, указывающий, что текст в массиве char перед указанным началом не должен рассматриваться. |
static int |
LAYOUT_RIGHT_TO_LEFT Флаг для layoutGlyphVector, указывающий, что текст выводится справа налево в соответствии с анализом Bidi. |
static String |
MONOSPACED Строковая константа для канонического семейного имени логического шрифта «Monospaced». |
protected String |
name Логическое имя этого |
static int |
PLAIN Константа стиля «обычный». |
protected float |
pointSize Размер шрифта этого |
static int |
ROMAN_BASELINE Базовая линия, используемая в большинстве римских шрифтов при выводе текста. |
static String |
SANS_SERIF Строковая константа для канонического семейного имени логического шрифта «SansSerif». |
static String |
SERIF Строковая константа для канонического семейного имени логического шрифта «Serif». |
protected int |
size Размер шрифта этого |
protected int |
style Стиль этого |
static int |
TRUETYPE_FONT Идентификация ресурса шрифта типа TRUETYPE. |
static int |
TYPE1_FONT Идентификация ресурса шрифта типа TYPE1. |
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
Font(Font font) Создаёт новый |
Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes) Создаёт новый | |
Font(String name,
int style,
int size) Создаёт новый |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
canDisplay(char c) Проверяет, есть ли у этого |
boolean |
canDisplay(int codePoint) Проверяет, есть ли у этого |
int |
canDisplayUpTo(char[] text,
int start,
int limit) Указывает, может ли этот |
int |
canDisplayUpTo(CharacterIterator iter,
int start,
int limit) Указывает, может ли этот |
int |
canDisplayUpTo(String str) Указывает, может ли этот |
static Font |
createFont(int fontFormat,
File fontFile) Возвращает новый |
static Font |
createFont(int fontFormat,
InputStream fontStream) Возвращает новый |
GlyphVector |
createGlyphVector(FontRenderContext frc,
char[] chars) Создаёт |
GlyphVector |
createGlyphVector(FontRenderContext frc,
CharacterIterator ci) Создаёт |
GlyphVector |
createGlyphVector(FontRenderContext frc,
int[] glyphCodes) Создаёт |
GlyphVector |
createGlyphVector(FontRenderContext frc,
String str) Создаёт |
static Font |
decode(String str) Возвращает |
Font |
deriveFont(AffineTransform trans) Создаёт новый объект |
Font |
deriveFont(float size) Создаёт новый объект |
Font |
deriveFont(int style) Создаёт новый объект |
Font |
deriveFont(int style,
AffineTransform trans) Создаёт новый объект |
Font |
deriveFont(int style,
float size) Создаёт новый объект |
Font |
deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes) Создаёт новый объект |
boolean |
equals(Object obj) Сравнивает этот объект |
Map<TextAttribute,?> |
getAttributes() Возвращает карту доступных атрибутов шрифта в этом |
AttributedCharacterIterator.Attribute[] |
getAvailableAttributes() Возвращает ключи всех поддерживаемых атрибутов этим |
byte |
getBaselineFor(char c) Возвращает линию основания, соответствующую отображению этого символа. |
String |
getFamily() Возвращает имя семейства этого |
String |
getFamily(Locale l) Возвращает имя семейства этого |
static Font |
getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes) Возвращает |
static Font |
getFont(String nm) Возвращает объект |
static Font |
getFont(String nm,
Font font) Получает указанное |
String |
getFontName() Возвращает имя начертания шрифта этого |
String |
getFontName(Locale l) Возвращает имя начертания шрифта |
float |
getItalicAngle() Возвращает наклон курсива этого |
LineMetrics |
getLineMetrics(char[] chars,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает объект |
LineMetrics |
getLineMetrics(CharacterIterator ci,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает объект |
LineMetrics |
getLineMetrics(String str,
FontRenderContext frc) Возвращает объект |
LineMetrics |
getLineMetrics(String str,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает объект |
Rectangle2D |
getMaxCharBounds(FontRenderContext frc) Возвращает пределы символа с максимальными пределами, как определено в указанном |
int |
getMissingGlyphCode() Возвращает glyphCode, используемый, когда у этого |
String |
getName() Возвращает логическое имя этого |
int |
getNumGlyphs() Возвращает количество глифов в этом |
java.awt.peer.FontPeer |
getPeer() Устарело. Отображение шрифтов теперь независимо от платформы. |
String |
getPSName() Возвращает имя PostScript этого |
int |
getSize() Возвращает размер шрифта в пунктах этого |
float |
getSize2D() Возвращает размер шрифта в пунктах этого |
Rectangle2D |
getStringBounds(char[] chars,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает логические пределы указанного массива символов в указанном |
Rectangle2D |
getStringBounds(CharacterIterator ci,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает логические пределы символов, индексированных в указанном |
Rectangle2D |
getStringBounds(String str,
FontRenderContext frc) Возвращает логические пределы указанного |
Rectangle2D |
getStringBounds(String str,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает логические пределы указанного |
int |
getStyle() Возвращает стиль этого |
AffineTransform |
getTransform() Возвращает копию преобразования, связанного с этим |
int |
hashCode() Возвращает хэш-код для этого |
boolean |
hasLayoutAttributes() Возвращает true, если этот шрифт содержит атрибуты, требующие дополнительной обработки макета. |
boolean |
hasUniformLineMetrics() Проверяет, имеет ли этот |
boolean |
isBold() Указывает, имеет ли стиль объекта |
boolean |
isItalic() Указывает, имеет ли стиль объекта |
boolean |
isPlain() Указывает, имеет ли стиль объекта |
boolean |
isTransformed() Указывает, имеет ли этот объект |
GlyphVector |
layoutGlyphVector(FontRenderContext frc,
char[] text,
int start,
int limit,
int flags) Возвращает новый объект |
String |
toString() Преобразует этот объект |
Методы, унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Поля
DIALOG
public static final String DIALOG
Строковая константа для канонического семейства логического шрифта "Dialog". Она полезна при построении шрифтов для проверки имени во время компиляции.
- С момента:
- 1.6
- См. также:
- Значения константных полей
DIALOG_INPUT
public static final String DIALOG_INPUT
Строковая константа для канонического семейства логического шрифта "DialogInput". Она полезна при построении шрифтов для проверки имени во время компиляции.
- С момента:
- 1.6
- См. также:
- Значения константных полей
SANS_SERIF
public static final String SANS_SERIF
Строковая константа для канонического семейства логического шрифта "SansSerif". Она полезна при построении шрифтов для проверки имени во время компиляции.
- С момента:
- 1.6
- См. также:
- Значения константных полей
SERIF
public static final String SERIF
Строковая константа для канонического семейства логического шрифта "Serif". Она полезна при построении шрифтов для проверки имени во время компиляции.
- С момента:
- 1.6
- См. также:
- Значения константных полей
MONOSPACED
public static final String MONOSPACED
Строковая константа для канонического семейства логического шрифта "Monospaced". Она полезна при построении шрифтов для проверки имени во время компиляции.
- С момента:
- 1.6
- См. также:
- Значения константных полей
PLAIN
public static final int PLAIN
Константа для простого стиля.
- См. также:
- Значения константных полей
BOLD
public static final int BOLD
Константа для жирной гарнитуры. Может комбинироваться с другими константами стиля (кроме PLAIN) для смешанных стилей.
- См. также:
- Значения константных полей
ITALIC
public static final int ITALIC
Константа для курсивного стиля. Может комбинироваться с другими константами стиля (кроме PLAIN) для смешанных стилей.
- См. также:
- Значения константных полей
ROMAN_BASELINE
public static final int ROMAN_BASELINE
Базовая линия, используемая в большинстве латинских шрифтов при выводе текста.
- См. также:
- Значения константных полей
CENTER_BASELINE
public static final int CENTER_BASELINE
Базовая линия, используемая в идеографических системах письма, таких как китайский, японский и корейский, при выводе текста.
- См. также:
- Значения константных полей
HANGING_BASELINE
public static final int HANGING_BASELINE
Базовая линия, используемая в деванагари и подобных системах письма при выводе текста.
- См. также:
- Значения константных полей
TRUETYPE_FONT
public static final int TRUETYPE_FONT
Идентифицирует ресурс шрифта типа TRUETYPE. Используется для указания ресурса шрифта TrueType методу createFont(int, java.io.InputStream). Формат TrueType был расширен до формата OpenType, который добавляет поддержку шрифтов с контурами Postscript, поэтому этот тег ссылается на эти шрифты, а также на шрифты с контурами TrueType.
- С момента:
- 1.3
- См. также:
- Значения константных полей
TYPE1_FONT
public static final int TYPE1_FONT
Идентифицирует ресурс шрифта типа TYPE1. Используется для указания ресурса шрифта Type1 методу createFont(int, java.io.InputStream).
- С момента:
- 1.5
- См. также:
- Значения константных полей
name
protected String name
Логическое имя этого Font, переданное в конструктор.
- С момента:
- JDK1.0
- См. также:
getName()
style
protected int style
Стиль этого Font, переданный в конструктор. Этот стиль может быть PLAIN, BOLD, ITALIC или BOLD+ITALIC.
- С момента:
- JDK1.0
- См. также:
getStyle()
size
protected int size
Размер шрифта в пунктах этого Font, округлённый до целого числа.
- С момента:
- JDK1.0
- См. также:
getSize()
pointSize
protected float pointSize
Размер шрифта в пунктах этого Font в float.
- См. также:
-
getSize(),getSize2D()
LAYOUT_LEFT_TO_RIGHT
public static final int LAYOUT_LEFT_TO_RIGHT
Флаг для layoutGlyphVector, указывающий, что текст выводится слева направо, как определено анализом Bidi.
- См. также:
- Значения константных полей
LAYOUT_RIGHT_TO_LEFT
public static final int LAYOUT_RIGHT_TO_LEFT
Флаг для layoutGlyphVector, указывающий, что текст выводится справа налево, как определено анализом Bidi.
- См. также:
- Значения константных полей
LAYOUT_NO_START_CONTEXT
public static final int LAYOUT_NO_START_CONTEXT
Флаг для layoutGlyphVector, указывающий, что текст в массиве символов до указанного начала не должен рассматриваться.
- См. также:
- Значения константных полей
LAYOUT_NO_LIMIT_CONTEXT
public static final int LAYOUT_NO_LIMIT_CONTEXT
Флаг для layoutGlyphVector, указывающий, что текст в массиве символов после указанного предела не должен рассматриваться.
- См. также:
- Значения константных полей
Конструкторы
Font
public Font(String name,
int style,
int size) Создаёт новый Font по указанному имени, стилю и размеру в пунктах.
Имя шрифта может быть именем начертания или семейства шрифтов. Оно используется вместе со стилем для поиска подходящего начертания. Если задано имя семейства, аргумент стиля используется для выбора наиболее подходящего начертания из семейства. Если задано имя начертания, стиль аргумента и стиль начертания объединяются для поиска наиболее подходящего шрифта из того же семейства. Например, если задано имя начертания "Arial Bold" со стилем Font.ITALIC, система поиска шрифтов ищет начертание в семействе "Arial", которое является жирным и курсивным, и может сопоставить экземпляр шрифта с физическим начертанием "Arial Bold Italic". Аргумент стиля объединяется со стилем заданного начертания, а не добавляется или вычитается. Это означает, что указание жирного начертания и жирного стиля не удваивает жирность шрифта, а указание жирного начертания и простого стиля не осветляет шрифт.
Если начертание с запрошенным стилем не найдено, система шрифтов может применить алгоритмический стиль для достижения желаемого стиля. Например, если ITALIC запрашивается, но курсивное начертание недоступно, глифы из простого начертания могут быть алгоритмически наклонены (наклонены).
Поиск имени шрифта нечувствителен к регистру, используя правила преобразования регистра US локали.
Если параметр 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 - С момента:
- JDK1.0
- См. также:
-
GraphicsEnvironment.getAllFonts(),GraphicsEnvironment.getAvailableFontFamilyNames()
Font
public Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Создаёт новый Font с указанными атрибутами. Признаются только ключи, определённые в TextAttribute. Кроме того, атрибут FONT не распознаётся этим конструктором (см. getAvailableAttributes()). Только атрибуты, имеющие значения допустимых типов, повлияют на новый Font.
Если attributes равно null, новый Font инициализируется значениями по умолчанию.
- Параметры:
-
attributes- атрибуты, которые нужно назначить новомуFont, илиnull - См. также:
TextAttribute
Шрифт
protected Font(Font font)
Создаёт новый Font из указанного font. Этот конструктор предназначен для использования подклассами.
- Параметры:
-
font- используемый для создания этогоFont. - Исключения:
-
NullPointerException- еслиfontравно null - С тех пор:
- 1.6
Методы
getPeer
@Deprecated public java.awt.peer.FontPeer getPeer()
Устарело. Отображение шрифтов теперь независимо от платформы.
Возвращает пеер этого Font.
- Возвращает:
- пир
Font. - С тех пор:
- JDK1.1
getFont
public static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Возвращает Font , подходящий для атрибутов. Если attributes содержит атрибут FONT со значением в виде допустимого Font, он будет объединён с любыми оставшимися атрибутами. См. TextAttribute.FONT для получения дополнительной информации.
- Параметры:
-
attributes- атрибуты, которые нужно назначить новомуFont - Возвращает:
- новый
Font, созданный с указанными атрибутами - Исключения:
-
NullPointerException- еслиattributesравно null. - С тех пор:
- 1.2
- См. также:
TextAttribute
createFont
public static Font createFont(int fontFormat,
InputStream fontStream)
throws FontFormatException,
IOException Возвращает новый Font , используя указанный тип шрифта и входные данные. Новый Font создаётся с размером 1 пункт и стилем PLAIN. Этот базовый шрифт затем может быть использован с методами deriveFont в этом классе для получения новых объектов Font с различными размерами, стилями, преобразованиями и особенностями шрифта. Этот метод не закрывает InputStream.
Чтобы сделать Font доступным для конструкторов Font, возвращённый Font должен быть зарегистрирован в GraphicsEnviroment вызовом registerFont(Font).
- Параметры:
-
fontFormat- типFont, который являетсяTRUETYPE_FONT, если указан ресурс TrueType, илиTYPE1_FONT, если указан ресурс Type 1. -
fontStream- объектInputStream, представляющий входные данные для шрифта. - Возвращает:
- новый
Font, созданный с указанным типом шрифта. - Исключения:
-
IllegalArgumentException- еслиfontFormatне являетсяTRUETYPE_FONTилиTYPE1_FONT. -
FontFormatException- если данныеfontStreamне содержат необходимые таблицы шрифтов для указанного формата. -
IOException- еслиfontStreamне может быть полностью прочитан. - С тех пор:
- 1.3
- См. также:
GraphicsEnvironment.registerFont(Font)
createFont
public static Font createFont(int fontFormat,
File fontFile)
throws FontFormatException,
IOException Возвращает новый Font , используя указанный тип шрифта и указанный файл шрифта. Новый Font создаётся с размером 1 пункт и стилем PLAIN. Этот базовый шрифт затем может быть использован с методами deriveFont в этом классе для получения новых объектов Font с различными размерами, стилями, преобразованиями и особенностями шрифта.
- Параметры:
-
fontFormat- типFont, который являетсяTRUETYPE_FONT, если указан ресурс TrueType, илиTYPE1_FONT, если указан ресурс Type 1. До тех пор, пока на возвращённый шрифт или производные от него шрифты есть ссылки, реализация может продолжать обращаться кfontFileдля получения данных шрифта. Таким образом, результаты не определены, если файл изменяется или становится недоступным.Чтобы сделать
Fontдоступным для конструкторов Font, возвращённыйFontдолжен быть зарегистрирован вGraphicsEnviromentвызовомregisterFont(Font). -
fontFile- объектFile, представляющий входные данные для шрифта. - Возвращает:
- новый
Font, созданный с указанным типом шрифта. - Исключения:
-
IllegalArgumentException- еслиfontFormatне являетсяTRUETYPE_FONTилиTYPE1_FONT. -
NullPointerException- еслиfontFileравно null. -
IOException- еслиfontFileне может быть прочитан. -
FontFormatException- еслиfontFileне содержит необходимые таблицы шрифтов для указанного формата. -
SecurityException- если исполняемый код не имеет разрешения на чтение из файла. - С тех пор:
- 1.5
- См. также:
GraphicsEnvironment.registerFont(Font)
getTransform
public AffineTransform getTransform()
Возвращает копию преобразования, связанного с этим Font. Это преобразование не обязательно является тем, которое использовалось для создания шрифта. Если шрифт имеет алгоритмические надстрочные индексы или регулирование ширины, это будет включено в возвращаемое AffineTransform.
Как правило, шрифты не преобразуются. Клиенты, как правило, должны сначала вызвать isTransformed() и только затем вызвать этот метод, если isTransformed возвращает true.
- Возвращает:
- объект
AffineTransform, представляющий атрибут преобразования этого объектаFont.
getFamily
public String getFamily()
Возвращает имя семейства этого Font.
Имя семейства шрифта зависит от шрифта. Два шрифта, такие как Helvetica Italic и Helvetica Bold, имеют одинаковое имя семейства, Helvetica, в то время как их имена гарнитур — Helvetica Bold и Helvetica Italic. Список доступных имён семейств можно получить, используя метод GraphicsEnvironment.getAvailableFontFamilyNames().
Используйте getName для получения логического имени шрифта. Используйте getFontName для получения имени гарнитуры шрифта.
- Возвращает:
- строку, являющуюся именем семейства этого
Font. - С тех пор:
- JDK1.1
- См. также:
-
getName(),getFontName()
getFamily
public String getFamily(Locale l)
Возвращает имя семейства этого Font, локализованное для указанной локали.
Имя семейства шрифта зависит от шрифта. Два шрифта, такие как Helvetica Italic и Helvetica Bold, имеют одинаковое имя семейства, Helvetica, в то время как их имена гарнитур — Helvetica Bold и Helvetica Italic. Список доступных имён семейств можно получить, используя метод GraphicsEnvironment.getAvailableFontFamilyNames().
Используйте getFontName для получения имени гарнитуры шрифта.
- Параметры:
-
l- локали, для которой нужно получить имя семейства - Возвращает:
- строку, представляющую имя семейства шрифта, локализованное для указанной локали.
- С тех пор:
- 1.2
- См. также:
-
getFontName(),Locale
getPSName
public String getPSName()
Возвращает имя PostScript этого Font. Используйте getFamily для получения имени семейства шрифта. Используйте getFontName для получения имени гарнитуры шрифта.
- Возвращает:
- строку, представляющую имя PostScript этого
Font. - С тех пор:
- 1.2
getName
public String getName()
Возвращает логическое имя этого Font. Используйте getFamily для получения имени семейства шрифта. Используйте getFontName для получения имени гарнитуры шрифта.
- Возвращает:
- строку, представляющую логическое имя этого
Font. - С тех пор:
- JDK1.0
- См. также:
-
getFamily(),getFontName()
getFontName
public String getFontName()
Возвращает имя гарнитуры этого Font. Например, Helvetica Bold может быть возвращено как имя гарнитуры. Используйте getFamily для получения имени семейства шрифта. Используйте getName для получения логического имени шрифта.
- Возвращает:
- строку, представляющую имя гарнитуры этого
Font. - С тех пор:
- 1.2
- См. также:
-
getFamily(),getName()
getFontName
public String getFontName(Locale l)
Возвращает имя гарнитуры Font, локализованное для указанной локали. Например, Helvetica Fett может быть возвращено как имя гарнитуры. Используйте getFamily для получения имени семейства шрифта.
- Параметры:
-
l- локали, для которой нужно получить имя гарнитуры - Возвращает:
- строку, представляющую имя гарнитуры, локализованное для указанной локали.
- См. также:
-
getFamily(),Locale
getStyle
public int getStyle()
Возвращает стиль этого Font . Стиль может быть PLAIN, BOLD, ITALIC или BOLD+ITALIC.
- Возвращает:
- стиль этого
Font - С тех пор:
- JDK1.0
- См. также:
-
isPlain(),isBold(),isItalic()
getSize
public int getSize()
Возвращает размер шрифта этого Font, округлённый до целого числа. Большинство пользователей знакомы с понятием размера шрифта для указания размера глифов в шрифте. Этот размер определяет расстояние между базовой линией одной строки и базовой линией следующей строки в документе с одинарным интервалом. Размер шрифта основан на графических пунктах, примерно 1/72 дюйма.
API Java(tm)2D использует соглашение, что один пункт эквивалентен одной единице в пользовательских координатах. При использовании нормализованного преобразования для преобразования пользовательских координат в координаты устройства 72 пользовательских единицы равны 1 дюйму в координатах устройства. В этом случае один пункт составляет 1/72 дюйма.
- Возвращает:
- размер шрифта этого
Fontв единицах 1/72 дюйма. - С тех пор:
- JDK1.0
- См. также:
-
getSize2D(),GraphicsConfiguration.getDefaultTransform(),GraphicsConfiguration.getNormalizingTransform()
getSize2D
public float getSize2D()
Возвращает размер шрифта этого Font в значении float.
- Возвращает:
- размер шрифта этого
Fontв виде значенияfloat. - С тех пор:
- 1.2
- См. также:
getSize()
isPlain
public boolean isPlain()
Указывает, является ли стиль этого объекта Font PLAIN.
- Возвращает:
-
trueесли у этого объектаFontстиль PLAIN;falseв противном случае. - С тех пор:
- JDK1.0
- См. также:
getStyle()
isBold
public boolean isBold()
Указывает, является ли стиль этого объекта Font BOLD.
- Возвращает:
-
trueесли у этого объектаFontстиль BOLD;falseв противном случае. - С тех пор:
- JDK1.0
- См. также:
getStyle()
isItalic
public boolean isItalic()
Указывает, является ли стиль этого объекта Font ITALIC.
- Возвращает:
-
trueесли у этого объектаFontстиль ITALIC;falseв противном случае. - С тех пор:
- JDK1.0
- См. также:
getStyle()
isTransformed
public boolean isTransformed()
Указывает, имеет ли этот объект Font преобразование, которое влияет на его размер помимо атрибута Size.
- Возвращает:
-
trueесли у этого объектаFontатрибут AffineTransform, отличный от тождественного.falseв противном случае. - С тех пор:
- 1.4
- См. также:
getTransform()
hasLayoutAttributes
public boolean hasLayoutAttributes()
Возвращает true, если этот шрифт содержит атрибуты, требующие дополнительной обработки вывода.
- Возвращает:
- true, если шрифт имеет атрибуты вывода
- С тех пор:
- 1.6
getFont
public static Font getFont(String nm)
Возвращает объект Font из списка свойств системы. nm обрабатывается как имя свойства системы, которое нужно получить. Значение свойства String затем интерпретируется как объект Font в соответствии со спецификацией Font.decode(String) Если указанное свойство не найдено или исполняемый код не имеет разрешения на чтение свойства, возвращается null.
- Параметры:
-
nm- имя свойства - Возвращает:
- объект
Font, описываемый именем свойства, или null, если такого свойства нет. - Исключения:
-
NullPointerException- если nm равно null. - С тех пор:
- 1.2
- См. также:
decode(String)
decode
public static Font decode(String str)
Возвращает шрифт, который описывает строковый аргумент. Для того, чтобы этот метод возвращал нужный шрифт, отформатируйте параметр "PLAIN" одним из следующих способов:
- имя_шрифта-стиль-размер
- имя_шрифта-размер
- имя_шрифта-стиль
- имя_шрифта
- имя_шрифта стиль размер
- имя_шрифта размер
- имя_шрифта стиль
- имя_шрифта
"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. - С тех пор:
- JDK1.1
- См. также:
getFamily()
getFont
public static Font getFont(String nm,
Font font) Получает указанный Font из списка свойств системы. Как и в методе getProperty объекта System, первый аргумент обрабатывается как имя свойства системы, которое нужно получить. Значение свойства String интерпретируется как объект Font.
Значение свойства должно быть одним из форматов, принятых методом Font.decode(String) Если указанное свойство не найдено или исполняемый код не имеет разрешения на чтение свойства, возвращается аргумент font.
- Параметры:
-
nm- имя свойства (нечувствительное к регистру) -
font- шрифт по умолчанию, который нужно вернуть, если свойствоnmне определено - Возвращает:
- значение свойства шрифта.
- Исключения:
-
NullPointerException- если nm равно null. - См. также:
decode(String)
hashCode
public int hashCode()
Возвращает код хэширования для этого объекта Font.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэширования для этого объекта
Font. - С тех пор:
- JDK1.0
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
equals
public boolean equals(Object obj)
Сравнивает этот объект Font с указанным объектом Object.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объектObjectдля сравнения - Возвращает:
-
trueесли объекты одинаковые или если аргумент — объектFont, описывающий тот же шрифт, что и этот объект;falseв противном случае. - С тех пор:
- JDK1.0
- См. также:
-
Object.hashCode(),HashMap
toString
public String toString()
Преобразует этот объект Font в строковое представление.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта
Font. - С тех пор:
- JDK1.0
getNumGlyphs
public int getNumGlyphs()
Возвращает количество глифов в этом Font. Коды глифов для этого объекта Font находятся в диапазоне от 0 до getNumGlyphs() - 1.
- Возвращает:
- количество глифов в этом
Font. - С:
- 1.2
getMissingGlyphCode
public int getMissingGlyphCode()
Возвращает glyphCode, используемый, когда у этого Font нет глифа для указанного кода Юникода.
- Возвращает:
- glyphCode этого
Font. - С:
- 1.2
getBaselineFor
public byte getBaselineFor(char c)
Возвращает базовую линию, подходящую для отображения этого символа.
Шрифты большого размера могут поддерживать различные письменности, и каждая система может использовать разную базовую линию. Аргумент символа определяет используемую письменность. Клиенты не должны предполагать, что все символы используют одну и ту же базовую линию.
- Параметры:
-
c- символ, используемый для идентификации письменности - Возвращает:
- базовую линию, подходящую для указанного символа.
- С:
- 1.2
- См. также:
-
LineMetrics.getBaselineOffsets(),ROMAN_BASELINE,CENTER_BASELINE,HANGING_BASELINE
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 глиф для указанного символа.
Примечание: Этот метод не может обрабатывать дополнительные символы. Для поддержки всех символов Юникода, включая дополнительные символы, используйте метод canDisplay(int) или методы canDisplayUpTo.
- Параметры:
-
c- символ, для которого необходим глиф - Возвращает:
-
trueесли у этогоFontесть глиф для этого символа;falseв противном случае. - С:
- 1.2
canDisplay
public boolean canDisplay(int codePoint)
Проверяет, содержит ли этот Font глиф для указанного символа.
- Параметры:
-
codePoint- символ (код Юникода), для которого нужен глиф. - Возвращает:
-
trueесли у этогоFontесть глиф для этого символа;falseв противном случае. - Исключения:
-
IllegalArgumentException- если код символа не является допустимым кодом Юникода. - С:
- 1.5
- См. также:
Character.isValidCodePoint(int)
canDisplayUpTo
public int canDisplayUpTo(String str)
Указывает, может ли этот Font отобразить указанную String. Для строк с кодировкой Юникод важно знать, может ли определённый шрифт отобразить строку. Этот метод возвращает смещение в 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- указанное начальное смещение (вchars) в указанный массив значенийchar -
limit- указанное конечное смещение (вchars) в указанный массив значенийchar - Возвращает:
- смещение в
text, указывающее на первый символ вtext, который этотFontне может отобразить; или-1, если этотFontможет отобразить все символы вtext. - С:
- 1.2
canDisplayUpTo
public int canDisplayUpTo(CharacterIterator iter,
int start,
int limit) Указывает, может ли этот Font отобразить текст, указанный в iter начиная с start и заканчивая limit.
- Параметры:
-
iter- объектCharacterIterator -
start- указанное начальное смещение в указанномCharacterIterator. -
limit- указанное конечное смещение в указанномCharacterIterator. - Возвращает:
- смещение в
iter, указывающее на первый символ вiter, который этотFontне может отобразить; или-1, если этотFontможет отобразить все символы вiter. - С:
- 1.2
getItalicAngle
public float getItalicAngle()
Возвращает угол наклона курсива этого Font. Угол наклона курсива — это обратный наклон маркера, который лучше всего соответствует позе этого Font.
- Возвращает:
- угол стиля КУРСИВ этого
Font. - См. также:
TextAttribute.POSTURE
hasUniformLineMetrics
public boolean hasUniformLineMetrics()
Проверяет, имеет ли этот Font однородные метрики строк. Логический Font может быть составным шрифтом, что означает, что он состоит из различных физических шрифтов для покрытия различных диапазонов кодов. Каждый из этих шрифтов может иметь разные LineMetrics. Если логический Font является единым шрифтом, то метрики будут однородными.
- Возвращает:
-
trueесли у этогоFontесть однородные метрики строк;falseв противном случае.
getLineMetrics
public LineMetrics getLineMetrics(String str,
FontRenderContext frc) Возвращает объект LineMetrics, созданный с указанным String и FontRenderContext.
- Параметры:
-
str- указанныйString -
frc- указанныйFontRenderContext - Возвращает:
- объект
LineMetricsсозданный с указаннымStringиFontRenderContext.
getLineMetrics
public LineMetrics getLineMetrics(String str,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает объект LineMetrics, созданный с указанными аргументами.
- Параметры:
-
str- указаннаяString -
beginIndex- начальное смещениеstr -
limit- конечное смещениеstr -
frc- указанныйFontRenderContext - Возвращает:
- объект
LineMetrics, созданный с указанными аргументами.
getLineMetrics
public LineMetrics getLineMetrics(char[] chars,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает объект LineMetrics, созданный с указанными аргументами.
- Параметры:
-
chars- массив символов -
beginIndex- начальное смещениеchars -
limit- конечное смещениеchars -
frc- указанныйFontRenderContext - Возвращает:
- объект
LineMetrics, созданный с указанными аргументами.
getLineMetrics
public LineMetrics getLineMetrics(CharacterIterator ci,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает объект LineMetrics, созданный с указанными аргументами.
- Параметры:
-
ci- указанныйCharacterIterator -
beginIndex- начальное смещение вci -
limit- конечное смещениеci -
frc- указанныйFontRenderContext - Возвращает:
- объект
LineMetrics, созданный с указанными аргументами.
getStringBounds
public Rectangle2D getStringBounds(String str,
FontRenderContext frc) Возвращает логические границы указанной String в указанном FontRenderContext. Логические границы содержат начало координат, восходящую часть, сдвиг и высоту, которая включает отступ. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и шрифтах диакритические знаки могут располагаться над восходящей частью или под нисходящей. Чтобы получить визуальную область, которая охватывает весь текст, используйте метод getBounds объекта TextLayout.
Примечание: Возвращаемые границы находятся в координатах, относительных к основанию (см. class notes).
- Параметры:
-
str- указаннаяString -
frc- указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющую область, ограничивающую указаннуюStringв указанномFontRenderContext.- С:
- 1.2
- См. также:
-
FontRenderContext,createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
getStringBounds
public Rectangle2D getStringBounds(String str,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает логические границы указанной String в указанном FontRenderContext. Логические границы содержат начало координат, восходящую часть, сдвиг и высоту, которая включает отступ. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и шрифтах диакритические знаки могут располагаться над восходящей частью или под нисходящей. Чтобы получить визуальную область, которая охватывает весь текст, используйте метод getBounds объекта TextLayout.
Примечание: Возвращаемые границы находятся в координатах, относительных к основанию (см. class notes).
- Параметры:
-
str- указаннаяString -
beginIndex- начальное смещениеstr -
limit- конечное смещениеstr -
frc- указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющую область, ограничивающую указаннуюStringв указанномFontRenderContext.- Исключения:
-
IndexOutOfBoundsException- еслиbeginIndexменьше нуля, илиlimitбольше длиныstr, илиbeginIndexбольшеlimit. - С:
- 1.2
- См. также:
-
FontRenderContext,createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
getStringBounds
public Rectangle2D getStringBounds(char[] chars,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает логические границы указанного массива символов в указанном FontRenderContext. Логические границы содержат начало координат, восходящую часть, сдвиг и высоту, которая включает отступ. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и шрифтах диакритические знаки могут располагаться над восходящей частью или под нисходящей. Чтобы получить визуальную область, которая охватывает весь текст, используйте метод getBounds объекта TextLayout.
Примечание: Возвращаемые границы находятся в координатах, относительных к основанию (см. class notes).
- Параметры:
-
chars- массив символов -
beginIndex- начальное смещение в массиве символов -
limit- конечное смещение в массиве символов -
frc- указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющую область, ограничивающую указанный массив символов в указанномFontRenderContext.- Исключения:
-
IndexOutOfBoundsException- еслиbeginIndexменьше нуля, илиlimitбольше длиныchars, илиbeginIndexбольшеlimit. - С:
- 1.2
- См. также:
-
FontRenderContext,createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
getStringBounds
public Rectangle2D getStringBounds(CharacterIterator ci,
int beginIndex,
int limit,
FontRenderContext frc) Возвращает логические границы символов, индексированных в указанном CharacterIterator, в указанном FontRenderContext. Логические границы содержат начало координат, восходящую часть, сдвиг и высоту, которая включает отступ. Логические границы не всегда охватывают весь текст. Например, в некоторых языках и шрифтах диакритические знаки могут располагаться над восходящей частью или под нисходящей. Чтобы получить визуальную область, которая охватывает весь текст, используйте метод getBounds объекта TextLayout.
Примечание: Возвращаемые границы находятся в координатах, относительных к основанию (см. class notes).
- Параметры:
-
ci- указанныйCharacterIterator -
beginIndex- начальное смещение вci -
limit- конечное смещение вci -
frc- указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющую область, ограничивающую символы, индексированные в указанномCharacterIteratorв указанномFontRenderContext.- Исключения:
-
IndexOutOfBoundsException- еслиbeginIndexменьше начального индексаci, илиlimitбольше конечного индексаci, илиbeginIndexбольшеlimit - С:
- 1.2
- См. также:
-
FontRenderContext,createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
getMaxCharBounds
public Rectangle2D getMaxCharBounds(FontRenderContext frc)
Возвращает границы символа с максимальными границами, как определено в указанном FontRenderContext.
Примечание: Возвращаемые границы находятся в координатах, относительных к основанию (см. class notes).
- Параметры:
-
frc- указанныйFontRenderContext - Возвращает:
Rectangle2D, представляющую область, ограничивающую символ с максимальными границами.
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc,
String str) Создает GlyphVector, сопоставляя символы с глифами один к одному на основе Unicode cmap в этом Font. Этот метод не выполняет других операций, кроме сопоставления глифов с символами. Это означает, что этот метод не подходит для некоторых сценариев письма, таких как арабский, иврит, тайский и индийские, которые требуют переупорядочивания, форматирования или замены лигатур.
- Параметры:
-
frc- указанныйFontRenderContext -
str- указанныйString - Возвращает:
- новый
GlyphVector, созданный с указаннымStringи указаннымFontRenderContext.
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc,
char[] chars) Создает GlyphVector, сопоставляя символы с глифами один к одному на основе Unicode cmap в этом Font. Этот метод не выполняет других операций, кроме сопоставления глифов с символами. Это означает, что этот метод не подходит для некоторых сценариев письма, таких как арабский, иврит, тайский и индийские, которые требуют переупорядочивания, форматирования или замены лигатур.
- Параметры:
-
frc- указанныйFontRenderContext -
chars- указанный массив символов - Возвращает:
- новый
GlyphVector, созданный с указанным массивом символов и указаннымFontRenderContext.
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc,
CharacterIterator ci) Создаёт GlyphVector путём сопоставления указанных символов с глифами один к одному на основе 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, как это выполняется Bidi, и должен выполняться только для текста с одинаковым направлением. Направление указывается в параметре флагов, используя LAYOUT_RIGHT_TO_LEFT для указания направления справа налево (арабский и иврит) или LAYOUT_LEFT_TO_RIGHT для указания направления слева направо (английский).
Кроме того, некоторые операции, такие как форматирование арабского языка, требуют контекста, чтобы символы в начале и конце имели правильные формы. Иногда данные в буфере за пределами предоставленного диапазона не содержат действительных данных. Значения LAYOUT_NO_START_CONTEXT и LAYOUT_NO_LIMIT_CONTEXT могут быть добавлены в параметр флагов, чтобы указать, что текст до начала или после конца, соответственно, не должен проверяться на наличие контекста.
Все остальные значения для параметра флагов зарезервированы.
- Параметры:
-
frc- указанныйFontRenderContext -
text- текст для макета -
start- начало текста для использования вGlyphVector -
limit- конец текста для использования вGlyphVector -
flags- контрольные флаги, как описано выше - Возвращает:
- новый
GlyphVector, представляющий текст между началом и концом, с выбранными и позиционированными глифами таким образом, чтобы лучше всего представить текст - Исключения:
-
ArrayIndexOutOfBoundsException- если начало или конец выходят за пределы - С:
- 1.4
- См. также:
-
Bidi,LAYOUT_LEFT_TO_RIGHT,LAYOUT_RIGHT_TO_LEFT,LAYOUT_NO_START_CONTEXT,LAYOUT_NO_LIMIT_CONTEXT
© 1993, 2020, 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.