Класс GlyphVector
- Все реализуемые интерфейсы:
Cloneable
public abstract class GlyphVector extends Object implements Cloneable
GlyphVector представляет собой коллекцию глифов, содержащую геометрическую информацию для размещения каждого глифа в преобразованном пространстве координат, соответствующем устройству, на котором сам GlyphVector в конечном счете отображается. GlyphVector не пытается интерпретировать последовательность содержащихся в нем глифов. Связи между соседними глифами в последовательности используются только для определения размещения глифов в визуальном пространстве координат.
Экземпляры GlyphVector создаются с помощью Font.
В приложении для обработки текста, которое может кэшировать промежуточные представления текста, создание и последующее кэширование GlyphVector для использования при отрисовке — самый быстрый способ представления визуального представления символов пользователю.
GlyphVector связан ровно с одним Font и может предоставлять данные, полезные только в отношении этого Font. Кроме того, метрики, полученные из GlyphVector, обычно не масштабируются геометрически, поскольку пикселизация и расстояние зависят от алгоритмов подгонки к сетке в рамках Font. Для обеспечения точного измерения GlyphVector и его составных глифов необходимо указать преобразование масштабирования, режим сглаживания и режим дробных метрик при создании GlyphVector. Эти характеристики могут быть получены из целевого устройства.
Для каждого глифа в GlyphVector вы можете получить:
- позицию глифа
- преобразование, связанное с глифом
- метрики глифа в контексте
GlyphVector. Метрики глифа могут отличаться при различных преобразованиях, заданных приложением параметрах отрисовки и конкретном экземпляре глифа вGlyphVector.
Изменение данных, используемых для создания GlyphVector, не изменяет состояние GlyphVector.
Предоставляются методы для изменения позиций глифов в GlyphVector. Эти методы наиболее подходят для приложений, выполняющих операции выравнивания для представления глифов.
Предоставляются методы для преобразования отдельных глифов в GlyphVector. Эти методы в основном полезны для специальных эффектов.
Предоставляются методы для возвращения визуальных, логических и пиксельных границ всего GlyphVector или отдельных глифов в GlyphVector.
Предоставляются методы для возврата Shape для GlyphVector и для отдельных глифов в GlyphVector.
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
FLAG_COMPLEX_GLYPHS |
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть сложное отображение глифов на символы (отображение, которое не сопоставляет глифы с символами один к одному в строго возрастающем или убывающем порядке, соответствующем направлению текста). |
static final int |
FLAG_HAS_POSITION_ADJUSTMENTS |
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть корректировки позиции. |
static final int |
FLAG_HAS_TRANSFORMS |
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть преобразования для каждого глифа. |
static final int |
FLAG_MASK |
Маска поддерживаемых флагов из getLayoutFlags. |
static final int |
FLAG_RUN_RTL |
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть направление текста справа налево. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Конструктор для вызова подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract boolean |
equals |
Проверяет, точно ли указанный GlyphVector равен этому GlyphVector. |
abstract Font |
getFont() |
Возвращает Font, связанный с этим GlyphVector. |
abstract FontRenderContext |
getFontRenderContext() |
Возвращает FontRenderContext, связанный с этим GlyphVector. |
int |
getGlyphCharIndex |
Возвращает индекс символа указанного глифа. |
int[] |
getGlyphCharIndices |
Возвращает индексы символов указанных глифов. |
abstract int |
getGlyphCode |
Возвращает код глифа указанного глифа. |
abstract int[] |
getGlyphCodes |
Возвращает массив кодов глифов для указанных глифов. |
abstract GlyphJustificationInfo |
getGlyphJustificationInfo |
Возвращает информацию о выравнивании для глифа по указанному индексу в этом GlyphVector. |
abstract Shape |
getGlyphLogicalBounds |
Возвращает логические границы указанного глифа внутри этого GlyphVector. |
abstract GlyphMetrics |
getGlyphMetrics |
Возвращает метрики глифа по указанному индексу в этом GlyphVector. |
abstract Shape |
getGlyphOutline |
Возвращает Shape, внутренность которого соответствует визуальному представлению указанного глифа внутри этого GlyphVector. |
Shape |
getGlyphOutline |
Возвращает Shape, внутренность которого соответствует визуальному представлению указанного глифа внутри этого GlyphVector, смещенного на x, y. |
Rectangle |
getGlyphPixelBounds |
Возвращает пиксельные границы глифа по индексу, когда этот GlyphVector отрисовывается в Graphics с заданным FontRenderContext в заданном расположении. |
abstract Point2D |
getGlyphPosition |
Возвращает положение указанного глифа относительно начала координат этого GlyphVector. |
abstract float[] |
getGlyphPositions |
Возвращает массив положений глифов для указанных глифов. |
abstract AffineTransform |
getGlyphTransform |
Возвращает преобразование указанного глифа внутри этого GlyphVector. |
abstract Shape |
getGlyphVisualBounds |
Возвращает визуальные границы указанного глифа внутри GlyphVector. |
int |
getLayoutFlags() |
Возвращает флаги, описывающие общее состояние GlyphVector. |
abstract Rectangle2D |
getLogicalBounds() |
Возвращает логические границы этого GlyphVector. |
abstract int |
getNumGlyphs() |
Возвращает количество глифов в этом GlyphVector. |
abstract Shape |
getOutline() |
Возвращает Shape, внутренность которого соответствует визуальному представлению этого GlyphVector. |
abstract Shape |
getOutline |
Возвращает Shape, внутренность которого соответствует визуальному представлению этого GlyphVector при отрисовке в x, y. |
Rectangle |
getPixelBounds |
Возвращает пиксельные границы этого GlyphVector при отрисовке в графическом контексте с заданным FontRenderContext в заданном месте. |
abstract Rectangle2D |
getVisualBounds() |
Возвращает визуальные границы этого GlyphVector. Визуальные границы — это ограничительная рамка контура этого GlyphVector. |
abstract void |
performDefaultLayout() |
Присваивает стандартные позиции каждому глифу в этом GlyphVector. |
abstract void |
setGlyphPosition |
Устанавливает положение указанного глифа внутри этого GlyphVector. |
abstract void |
setGlyphTransform |
Устанавливает преобразование указанного глифа внутри этого GlyphVector. |
Подробное описание полей
FLAG_HAS_TRANSFORMS
public static final int FLAG_HAS_TRANSFORMS
GlyphVector есть преобразования для каждого глифа.- С момента:
- 1.4
- См. также:
FLAG_HAS_POSITION_ADJUSTMENTS
public static final int FLAG_HAS_POSITION_ADJUSTMENTS
GlyphVector есть корректировки позиций. Если это значение истинно, позиции глифов не соответствуют накопленным стандартным сдвигам глифов (например, если была выполнена кернинг).- С момента:
- 1.4
- См. также:
FLAG_RUN_RTL
public static final int FLAG_RUN_RTL
GlyphVector есть направление выполнения справа налево. Это относится к сопоставлению глиф-символ и не подразумевает, что визуальные расположения глифов обязательно находятся в этом порядке, хотя обычно они будут.- С момента:
- 1.4
- См. также:
FLAG_COMPLEX_GLYPHS
public static final int FLAG_COMPLEX_GLYPHS
GlyphVector есть сложное сопоставление глиф-символ (которое не сопоставляет глифы символам один к одному в строго возрастающем или убывающем порядке, соответствующем направлению выполнения).- С момента:
- 1.4
- См. также:
FLAG_MASK
public static final int FLAG_MASK
- С момента:
- 1.4
- См. также:
Подробное описание конструкторов
GlyphVector
protected GlyphVector()
Подробное описание методов
getFont
public abstract Font getFont()
Font, связанный с этим GlyphVector.- Возвращает:
-
Font, используемый для создания этогоGlyphVector. - См. также:
getFontRenderContext
public abstract FontRenderContext getFontRenderContext()
FontRenderContext, связанный с этим GlyphVector.- Возвращает:
-
FontRenderContext, используемый для создания этогоGlyphVector. - См. также:
performDefaultLayout
public abstract void performDefaultLayout()
GlyphVector. Это может уничтожить информацию, сгенерированную во время первоначального макета этого GlyphVector.getNumGlyphs
public abstract int getNumGlyphs()
GlyphVector.- Возвращает:
- количество глифов в этом
GlyphVector.
getGlyphCode
public abstract int getGlyphCode(int glyphIndex)
Font, который создал этот GlyphVector.- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого нужно извлечь код глифа. - Возвращает:
- код глифа глифа в указанном
glyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphCodes
public abstract int[] getGlyphCodes(int beginGlyphIndex, int numEntries, int[] codeReturn)
Font, использованного для создания этого GlyphVector. Этот метод используется для удобства и производительности при обработке кодов глифов. Если массив не передан, создается новый массив.- Параметры:
-
beginGlyphIndex- индекс в этомGlyphVector, с которого начать извлечение кодов глифов -
numEntries- количество извлекаемых кодов глифов -
codeReturn- массив, который получает коды глифов и затем возвращается - Возвращает:
- массив кодов глифов для указанных глифов.
- Исключения:
-
IllegalArgumentException- еслиnumEntriesменьше 0 -
IndexOutOfBoundsException- еслиbeginGlyphIndexменьше 0 -
IndexOutOfBoundsException- если суммаbeginGlyphIndexиnumEntriesбольше количества глифов в этомGlyphVector
getGlyphCharIndex
public int getGlyphCharIndex(int glyphIndex)
- Параметры:
-
glyphIndex- индекс глифа - Возвращает:
- индекс первого символа, представленного глифом
- С момента:
- 1.4
getGlyphCharIndices
public int[] getGlyphCharIndices(int beginGlyphIndex, int numEntries, int[] codeReturn)
- Параметры:
-
beginGlyphIndex- индекс первого глифа -
numEntries- количество индексов глифов -
codeReturn- массив, в который следует вернуть индексы символов - Возвращает:
- массив индексов символов, по одному на каждый глиф.
- С момента:
- 1.4
getLogicalBounds
public abstract Rectangle2D getLogicalBounds()
GlyphVector. Этот метод используется при позиционировании этого GlyphVector относительно визуально смежных объектов GlyphVector.- Возвращает:
- a
Rectangle2D, который является логическими границами этогоGlyphVector.
getVisualBounds
public abstract Rectangle2D getVisualBounds()
GlyphVector. Визуальные границы - это прямоугольник, содержащий контур этого GlyphVector. Из-за растрирования и выравнивания пикселей возможно, что эта рамка не включает все пиксели, затронутые рендерингом этого GlyphVector.- Возвращает:
- a
Rectangle2D, который является прямоугольником, содержащим этотGlyphVector.
getPixelBounds
public Rectangle getPixelBounds(FontRenderContext renderFRC, float x, float y)
GlyphVector при отрисовке в графическом контексте с заданным FontRenderContext в заданном месте. Объект renderFRC не обязательно должен совпадать с FontRenderContext этого GlyphVector, и может быть null. Если он null, используется FontRenderContext этого GlyphVector. По умолчанию реализация возвращает визуальные границы, смещённые на x, y и округленные до ближайшего целого значения (т.е. возвращает целочисленный прямоугольник, охватывающий визуальные границы), игнорируя FRC. Подклассы должны переопределять этот метод.- Параметры:
-
renderFRC-FontRenderContextконтекста отрисовкиGraphics. -
x- координата x, по которой нужно отрисовать этотGlyphVector. -
y- координата y, по которой нужно отрисовать этотGlyphVector. - Возвращает:
- прямоугольник
Rectangle, охватывающий пиксели, которые будут затронуты. - С:
- 1.4
getOutline
public abstract Shape getOutline()
Shape, внутренняя область которого соответствует визуальному представлению этого GlyphVector.- Возвращает:
- объект
Shape, представляющий контур этогоGlyphVector.
getOutline
public abstract Shape getOutline(float x, float y)
Shape, внутренняя область которого соответствует визуальному представлению этого GlyphVector при отрисовке в позиции x, y.- Параметры:
-
x- координата X этогоGlyphVector. -
y- координата Y этогоGlyphVector. - Возвращает:
- объект
Shape, представляющий контур этогоGlyphVectorпри отрисовке в указанных координатах.
getGlyphOutline
public abstract Shape getGlyphOutline(int glyphIndex)
Shape, внутренняя область которого соответствует визуальному представлению указанного глифа в этом GlyphVector. Контур, возвращаемый этим методом, размещается вокруг начала каждого отдельного глифа.- Параметры:
-
glyphIndex- индекс в этомGlyphVector - Возвращает:
- объект
Shape, представляющий контур глифа в указанномglyphIndexэтогоGlyphVector. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше либо равно количеству глифов в этомGlyphVector
getGlyphOutline
public Shape getGlyphOutline(int glyphIndex, float x, float y)
Shape, внутренняя область которого соответствует визуальному представлению указанного глифа в этом GlyphVector, смещенного на x, y. Контур, возвращаемый этим методом, размещается вокруг начала каждого отдельного глифа.- Параметры:
-
glyphIndex- индекс в этомGlyphVector -
x- координата X позиции этогоGlyphVector -
y- координата Y позиции этогоGlyphVector - Возвращает:
- объект
Shape, представляющий контур глифа в указанномglyphIndexэтогоGlyphVectorпри отрисовке в указанных координатах. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше либо равно количеству глифов в этомGlyphVector - С:
- 1.4
getGlyphPosition
public abstract Point2D getGlyphPosition(int glyphIndex)
GlyphVector. Если glyphIndex равно количеству глифов в этом GlyphVector, этот метод возвращает позицию после последнего глифа. Эта позиция используется для определения смещения всего GlyphVector.- Параметры:
-
glyphIndex- индекс в этомGlyphVector - Возвращает:
- объект
Point2D, представляющий позицию глифа в указанномglyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше количества глифов в этомGlyphVector - См. также:
setGlyphPosition
public abstract void setGlyphPosition(int glyphIndex, Point2D newPos)
GlyphVector. Если glyphIndex равно количеству глифов в этом GlyphVector, этот метод устанавливает позицию после последнего глифа. Эта позиция используется для определения смещения всего GlyphVector.- Параметры:
-
glyphIndex- индекс в этомGlyphVector -
newPos-Point2Dдля позиционирования глифа в указанномglyphIndex - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше количества глифов в этомGlyphVector - См. также:
getGlyphTransform
public abstract AffineTransform getGlyphTransform(int glyphIndex)
GlyphVector. Преобразование относительно позиции глифа. Если не было применено специального преобразования, возвращается null. Значение null указывает на тождественное преобразование.- Параметры:
-
glyphIndex- индекс в этомGlyphVector - Возвращает:
- объект
AffineTransform, представляющий преобразование глифа в указанномglyphIndex. - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше либо равно количеству глифов в этомGlyphVector - См. также:
setGlyphTransform
public abstract void setGlyphTransform(int glyphIndex, AffineTransform newTX)
GlyphVector. Преобразование относительно позиции глифа. Аргумент null для newTX указывает, что для указанного глифа не применяется специальное преобразование. Этот метод может использоваться для поворота, отражения, перемещения и масштабирования глифа. Добавление преобразования может привести к существенным изменениям производительности.- Параметры:
-
glyphIndex- индекс в этомGlyphVector -
newTX- новое преобразование глифа в позицииglyphIndex - Исключения:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше либо равно количеству глифов в этомGlyphVector - См. также:
getLayoutFlags
public int getLayoutFlags()
- Возвращает:
- целое число, содержащее флаги, описывающие состояние
- С:
- 1.4
- См. также:
getGlyphPositions
public abstract float[] getGlyphPositions(int beginGlyphIndex, int numEntries, float[] positionReturn)
beginGlyphIndex + position/2. Нечетные индексы массива, начиная с единицы, содержат координаты Y глифа с номером beginGlyphIndex + (position-1)/2. Если beginGlyphIndex равно количеству глифов в этом GlyphVector, этот метод получает позицию после последнего глифа, и эта позиция используется для определения продвижения всего GlyphVector.- Parameters:
-
beginGlyphIndex- индекс, с которого начинать извлечение позиций глифов -
numEntries- количество глифов для извлечения -
positionReturn- массив, который получит позиции глифов и затем будет возвращён. - Returns:
- массив позиций глифов, указанных
beginGlyphIndexиnumEntries. - Throws:
-
IllegalArgumentException- еслиnumEntriesменьше 0 -
IndexOutOfBoundsException- еслиbeginGlyphIndexменьше 0 -
IndexOutOfBoundsException- если суммаbeginGlyphIndexиnumEntriesбольше количества глифов в этомGlyphVectorплюс один
getGlyphLogicalBounds
public abstract Shape getGlyphLogicalBounds(int glyphIndex)
GlyphVector. Эти логические границы имеют четыре грани, две из которых параллельны строчной линии под преобразованием глифа, а две другие грани соприкасаются с соседними глифами, если они есть. Этот метод полезен для проверки нажатий на указанный глиф, позиционирования курсора на ведущем или хвостовом крае глифа и для рисования области выделения вокруг указанного глифа.- Parameters:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого необходимо получить логические границы - Returns:
- a
Shape, который является логическими границами глифа в указанномglyphIndex. - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - See Also:
getGlyphVisualBounds
public abstract Shape getGlyphVisualBounds(int glyphIndex)
GlyphVector. Границы, возвращаемые этим методом, расположены вокруг начала каждого отдельного глифа.- Parameters:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого необходимо получить визуальные границы - Returns:
- a
Shape, который является визуальными границами глифа в указанномglyphIndex. - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - See Also:
getGlyphPixelBounds
public Rectangle getGlyphPixelBounds(int index, FontRenderContext renderFRC, float x, float y)
GlyphVector отрисовывается в Graphics с заданным FontRenderContext в заданном расположении. renderFRC не обязательно должен быть тем же, что и FontRenderContext этого GlyphVector, и может быть null. Если он null, используется FontRenderContext этого GlyphVector. Реализация по умолчанию возвращает визуальные границы глифа, смещенные на x, y и округленные до ближайшего целого значения, и игнорирует FRC. Подклассы должны переопределять этот метод.- Parameters:
-
index- индекс глифа. -
renderFRC-FontRenderContextGraphics. -
x- позиция X, в которой отрисовать этотGlyphVector. -
y- позиция Y, в которой отрисовать этотGlyphVector. - Returns:
- a
Rectangle, ограничивающий пиксели, которые будут затронуты. - Since:
- 1.4
getGlyphMetrics
public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
GlyphVector.- Parameters:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого необходимо получить метрики - Returns:
- объект
GlyphMetrics, представляющий метрики глифа по указанномуglyphIndexв этомGlyphVector. - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphJustificationInfo
public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
GlyphVector.- Parameters:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого необходимо получить свойства выравнивания - Returns:
- объект
GlyphJustificationInfo, представляющий свойства выравнивания глифа по указанномуglyphIndexв этомGlyphVector. - Throws:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
equals
public abstract boolean equals(GlyphVector set)
GlyphVector этому GlyphVector.- Parameters:
-
set- указанныйGlyphVectorдля проверки - Returns:
-
true, если указанныйGlyphVectorравен этомуGlyphVector;falseв противном случае.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/font/GlyphVector.html