Класс GlyphVector
- java.lang.Object
-
- java.awt.font.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.
- См. также:
-
Font,GlyphMetrics,TextLayout
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static int |
FLAG_COMPLEX_GLYPHS Флаг, используемый с getLayoutFlags, указывающий, что этот |
static int |
FLAG_HAS_POSITION_ADJUSTMENTS Флаг, используемый с getLayoutFlags, указывающий, что этот |
static int |
FLAG_HAS_TRANSFORMS Флаг, используемый с getLayoutFlags, указывающий, что этот |
static int |
FLAG_MASK Маска для поддерживаемых флагов из getLayoutFlags. |
static int |
FLAG_RUN_RTL Флаг, используемый с getLayoutFlags, указывающий, что у этого |
Краткое описание конструкторов
| Конструктор и описание |
|---|
GlyphVector() |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
abstract boolean |
equals(GlyphVector set) Проверяет, равен ли указанный |
abstract Font |
getFont() Возвращает |
abstract FontRenderContext |
getFontRenderContext() Возвращает |
int |
getGlyphCharIndex(int glyphIndex) Возвращает индекс символа указанного глифа. |
int[] |
getGlyphCharIndices(int beginGlyphIndex,
int numEntries,
int[] codeReturn) Возвращает индексы символов указанных глифов. |
abstract int |
getGlyphCode(int glyphIndex) Возвращает код глифа указанного глифа. |
abstract int[] |
getGlyphCodes(int beginGlyphIndex,
int numEntries,
int[] codeReturn) Возвращает массив кодов глифов для указанных глифов. |
abstract GlyphJustificationInfo |
getGlyphJustificationInfo(int glyphIndex) Возвращает информацию о выравнивании для глифа по указанному индексу в этом |
abstract Shape |
getGlyphLogicalBounds(int glyphIndex) Возвращает логические границы указанного глифа в этом |
abstract GlyphMetrics |
getGlyphMetrics(int glyphIndex) Возвращает метрики глифа по указанному индексу в этом |
abstract Shape |
getGlyphOutline(int glyphIndex) Возвращает |
Shape |
getGlyphOutline(int glyphIndex,
float x,
float y) Возвращает |
Rectangle |
getGlyphPixelBounds(int index,
FontRenderContext renderFRC,
float x,
float y) Возвращает пиксельные границы глифа по индексу, когда этот |
abstract Point2D |
getGlyphPosition(int glyphIndex) Возвращает позицию указанного глифа относительно начала координат этого |
abstract float[] |
getGlyphPositions(int beginGlyphIndex,
int numEntries,
float[] positionReturn) Возвращает массив позиций глифов для указанных глифов. |
abstract AffineTransform |
getGlyphTransform(int glyphIndex) Возвращает преобразование указанного глифа в этом |
abstract Shape |
getGlyphVisualBounds(int glyphIndex) Возвращает визуальные границы указанного глифа в |
int |
getLayoutFlags() Возвращает флаги, описывающие глобальное состояние GlyphVector. |
abstract Rectangle2D |
getLogicalBounds() Возвращает логические границы этого |
abstract int |
getNumGlyphs() Возвращает количество глифов в этом |
abstract Shape |
getOutline() Возвращает |
abstract Shape |
getOutline(float x,
float y) Возвращает |
Rectangle |
getPixelBounds(FontRenderContext renderFRC,
float x,
float y) Возвращает пиксельные границы этого |
abstract Rectangle2D |
getVisualBounds() Возвращает визуальные границы этого |
abstract void |
performDefaultLayout() Назначает значения по умолчанию позициям каждого глифа в этом |
abstract void |
setGlyphPosition(int glyphIndex,
Point2D newPos) Устанавливает позицию указанного глифа в этом |
abstract void |
setGlyphTransform(int glyphIndex,
AffineTransform newTX) Устанавливает преобразование указанного глифа в этом |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
FLAG_HAS_TRANSFORMS
public static final int FLAG_HAS_TRANSFORMS
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть преобразования для каждого глифа.
- Since:
- 1.4
- См. также:
- Значения константных полей
FLAG_HAS_POSITION_ADJUSTMENTS
public static final int FLAG_HAS_POSITION_ADJUSTMENTS
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть корректировки позиций. Когда это значение истинно, позиции глифов не совпадают с накопленными значениями по умолчанию для продвижения глифов (например, если была выполнена кернинг).
- Since:
- 1.4
- См. также:
- Значения константных полей
FLAG_RUN_RTL
public static final int FLAG_RUN_RTL
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть направление выполнения справа налево. Это относится к отображению глифа-символ и не подразумевает, что визуальные расположения глифов обязательно находятся в этом порядке, хотя обычно они будут.
- Since:
- 1.4
- См. также:
- Значения константных полей
FLAG_COMPLEX_GLYPHS
public static final int FLAG_COMPLEX_GLYPHS
Флаг, используемый с getLayoutFlags, указывающий, что у этого GlyphVector есть сложное отображение глиф-символ (которое не отображает глифы на символы один к одному в строго возрастающем или убывающем порядке, соответствующем направлению выполнения).
- Since:
- 1.4
- См. также:
- Значения константных полей
FLAG_MASK
public static final int FLAG_MASK
Маска для поддерживаемых флагов из getLayoutFlags. Должны проверяться только биты, покрытые маской.
- Since:
- 1.4
- См. также:
- Значения константных полей
Конструкторы
GlyphVector
public GlyphVector()
Методы
getFont
public abstract Font getFont()
Возвращает шрифт, связанный с этим GlyphVector.
- Возвращает:
-
Fontиспользованный для создания этогоGlyphVector. - См. также:
Font
getFontRenderContext
public abstract FontRenderContext getFontRenderContext()
Возвращает FontRenderContext, связанный с этим GlyphVector.
- Возвращает:
-
FontRenderContextиспользованный для создания этогоGlyphVector. - См. также:
-
FontRenderContext,Font
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- индекс глифа - Возвращает:
- индекс первого символа, представленного глифом
- Since:
- 1.4
getGlyphCharIndices
public int[] getGlyphCharIndices(int beginGlyphIndex,
int numEntries,
int[] codeReturn) Возвращает индексы символов указанных глифов. Индекс символа — это индекс первого логического символа, представленного глифом. Индексы возвращаются в порядке глифов. По умолчанию реализация вызывает getGlyphCharIndex для каждого глифа, и подклассы, вероятно, захотят переопределить эту реализацию по соображениям производительности. Используйте этот метод для удобства и производительности при обработке кодов глифов. Если массив не передан, создается новый массив.
- Параметры:
-
beginGlyphIndex- индекс первого глифа -
numEntries- количество индексов глифов -
codeReturn- массив, в который следует вернуть индексы символов - Возвращает:
- массив индексов символов, по одному на каждый глиф.
- Since:
- 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-FontRenderContextGraphics. -
x- координата x, в которой следует отрисовать этотGlyphVector. -
y- координата y, в которой следует отрисовать этотGlyphVector. - Возвращает:
- a
Rectangle, ограничивающий пиксели, которые будут затронуты. - Since:
- 1.4
getOutline
public abstract Shape getOutline()
Возвращает Shape , внутренняя часть которого соответствует визуальному представлению этого GlyphVector.
- Возвращает:
- a
Shape, являющийся контуром этогоGlyphVector.
getOutline
public abstract Shape getOutline(float x,
float y) Возвращает Shape , внутренняя часть которого соответствует визуальному представлению этого GlyphVector при отрисовке в x, y.
- Параметры:
-
x- координата X этогоGlyphVector. -
y- координата Y этогоGlyphVector. - Возвращает:
- a
Shape, являющийся контуром этогоGlyphVectorпри отрисовке в указанных координатах.
getGlyphOutline
public abstract Shape getGlyphOutline(int glyphIndex)
Возвращает Shape , внутренняя часть которого соответствует визуальному представлению указанного глифа в этом GlyphVector. Контур, возвращаемый этим методом, расположен вокруг начала каждого отдельного глифа.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector - Возвращает:
- a
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(int, java.awt.geom.Point2D)
setGlyphPosition
public abstract void setGlyphPosition(int glyphIndex,
Point2D newPos) Устанавливает положение указанного глифа в пределах этого GlyphVector. Если glyphIndex равно количеству глифов в этом GlyphVector, этот метод устанавливает положение после последнего глифа. Это положение используется для определения смещения всего GlyphVector.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector -
newPos-Point2Dдля размещения глифа в указанномglyphIndex - Выбрасывает:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше количества глифов в этомGlyphVector - См. также:
getGlyphPosition(int)
getGlyphTransform
public abstract AffineTransform getGlyphTransform(int glyphIndex)
Возвращает преобразование указанного глифа в пределах этого GlyphVector. Преобразование относительно положения глифа. Если не было применено специальное преобразование, может быть возвращено null. Значение null указывает на тождественное преобразование.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector - Возвращает:
- объект
AffineTransform, представляющий преобразование глифа в указанномglyphIndex. - Выбрасывает:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
setGlyphTransform(int, java.awt.geom.AffineTransform)
setGlyphTransform
public abstract void setGlyphTransform(int glyphIndex,
AffineTransform newTX) Устанавливает преобразование указанного глифа в пределах этого GlyphVector. Преобразование относительно положения глифа. Значение null для аргумента newTX указывает, что для указанного глифа не применяется специальное преобразование. Этот метод может использоваться для поворота, отражения, перемещения и масштабирования глифа. Добавление преобразования может привести к значительным изменениям производительности.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector -
newTX- новое преобразование глифа вglyphIndex - Выбрасывает:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
getGlyphTransform(int)
getLayoutFlags
public int getLayoutFlags()
Возвращает флаги, описывающие общее состояние GlyphVector. Флаги, не описанные ниже, зарезервированы. По умолчанию реализация возвращает 0 (ложь) для корректировок положения, преобразований, rtl и сложных флагов. Подклассы должны переопределять этот метод и убедиться, что он правильно описывает GlyphVector и соответствует результатам соответствующих вызовов.
- Возвращает:
- целое число, содержащее флаги, описывающие состояние
- С:
- 1.4
- См. также:
-
FLAG_HAS_POSITION_ADJUSTMENTS,FLAG_HAS_TRANSFORMS,FLAG_RUN_RTL,FLAG_COMPLEX_GLYPHS,FLAG_MASK
getGlyphPositions
public abstract float[] getGlyphPositions(int beginGlyphIndex,
int numEntries,
float[] positionReturn) Возвращает массив положений глифов для указанных глифов. Этот метод используется для удобства и производительности при обработке положений глифов. Если массив не передан, создается новый. Четные элементы массива, начиная с нулевой позиции, представляют координаты X глифа с номером beginGlyphIndex + position/2. Нечетные элементы, начиная с позиции 1, представляют координаты Y глифа с номером beginGlyphIndex + (position-1)/2. Если beginGlyphIndex равно количеству глифов в этом GlyphVector, этот метод получает положение после последнего глифа, и это положение используется для определения смещения всего GlyphVector.
- Параметры:
-
beginGlyphIndex- индекс, с которого начинать извлечение положений глифов -
numEntries- количество глифов для извлечения -
positionReturn- массив, который получает позиции глифов и затем возвращается. - Возвращает:
- массив положений глифов, заданных
beginGlyphIndexиnumEntries. - Выбрасывает:
-
IllegalArgumentException- еслиnumEntriesменьше 0 -
IndexOutOfBoundsException- еслиbeginGlyphIndexменьше 0 -
IndexOutOfBoundsException- если суммаbeginGlyphIndexиnumEntriesбольше количества глифов в этомGlyphVectorплюс один
getGlyphLogicalBounds
public abstract Shape getGlyphLogicalBounds(int glyphIndex)
Возвращает логические границы указанного глифа в пределах этого GlyphVector. Эти логические границы имеют четыре грани, две из которых параллельны базовой линии под преобразованием глифа, а две другие грани совместно используются с соседними глифами, если они присутствуют. Этот метод полезен для проверки нахождения, позиционирования курсора на ведущем или хвостовом крае глифа и для рисования области выделения вокруг указанного глифа.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого нужно извлечь логические границы - Возвращает:
- объект
Shape, представляющий логические границы глифа в указанномglyphIndex. - Выбрасывает:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
getGlyphVisualBounds(int)
getGlyphVisualBounds
public abstract Shape getGlyphVisualBounds(int glyphIndex)
Возвращает визуальные границы указанного глифа в пределах GlyphVector Границы, возвращаемые этим методом, расположены вокруг начала отсчета каждого отдельного глифа.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого нужно извлечь визуальные границы - Возвращает:
- объект
Shape, представляющий визуальные границы глифа в указанномglyphIndex. - Выбрасывает:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector - См. также:
getGlyphLogicalBounds(int)
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. Подклассы должны переопределять этот метод.
- Параметры:
-
index- индекс глифа. -
renderFRC-FontRenderContextGraphics. -
x- позиция X, в которой отображается этотGlyphVector. -
y- позиция Y, в которой отображается этотGlyphVector. - Возвращает:
- объект
Rectangle, ограничивающий пиксели, на которые повлияет отображение. - С:
- 1.4
getGlyphMetrics
public abstract GlyphMetrics getGlyphMetrics(int glyphIndex)
Возвращает метрики глифа с указанным индексом в этом GlyphVector.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, из которого нужно извлечь метрики - Возвращает:
- объект
GlyphMetrics, представляющий метрики глифа в указанномglyphIndexэтомGlyphVector. - Выбрасывает:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
getGlyphJustificationInfo
public abstract GlyphJustificationInfo getGlyphJustificationInfo(int glyphIndex)
Возвращает информацию о выравнивании глифа с указанным индексом в этом GlyphVector.
- Параметры:
-
glyphIndex- индекс в этомGlyphVector, соответствующий глифу, свойства выравнивания которого необходимо получить - Возвращает:
- объект
GlyphJustificationInfo, представляющий свойства выравнивания глифа по указанному индексуglyphIndexв этомGlyphVector. - Выбрасывает:
-
IndexOutOfBoundsException- еслиglyphIndexменьше 0 или больше или равно количеству глифов в этомGlyphVector
equals
public abstract boolean equals(GlyphVector set)
Проверяет, равен ли указанный GlyphVector этому GlyphVector.
- Параметры:
-
set- указанныйGlyphVectorдля проверки - Возвращает:
-
trueесли указанныйGlyphVectorравен этомуGlyphVector;falseв противном случае.
© 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.