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