Класс GlyphView
- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.GlyphView
- Все реализованные интерфейсы:
- Cloneable, SwingConstants, TabableView
- Прямые известные подклассы:
- LabelView
public class GlyphView extends View implements TabableView, Cloneable
GlyphView — это стилизованный фрагмент текста, представляющий собой представление, сопоставленное с элементом в модели текста. Это представление, как правило, отвечает за отображение глифов текста с использованием атрибутов на уровне символов каким-либо способом. Для выполнения фактического рендеринга и преобразований модель/представление используется реализация класса GlyphPainter. Это разделяет рендеринг от макета и управления ассоциацией с моделью.
Представление поддерживает разбиение для форматирования. Фрагменты, созданные при разбиении, используют представление, которое несет основную ответственность за элемент (т.е. они являются вложенными классами и содержат только небольшое количество собственного состояния), поэтому они могут совместно использовать его ресурсы.
Поскольку это представление отображает текст, который может содержать табуляции, оно реализует интерфейс TabableView. Табуляции будут расширяться только в том случае, если это представление вложено в контейнер, который выполняет расширение табуляций. ParagraphView является примером контейнера, который выполняет расширение табуляций.
- С:
- 1.3
Вложенные классы
| Модификатор и тип | Класс и описание |
|---|---|
static class |
GlyphView.GlyphPainter Класс для выполнения рендеринга глифов. |
Поля
Поля, унаследованные от класса javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS Поля, унаследованные от интерфейса javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST Конструкторы
| Конструктор и описание |
|---|
GlyphView(Element elem) Создает новое представление, обернутое вокруг элемента. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
View |
breakView(int axis,
int p0,
float pos,
float len) Разбивает это представление по заданной оси в заданной длине. |
void |
changedUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Предоставляет уведомление от документа о том, что атрибуты были изменены в позиции, за которую отвечает это представление. |
protected void |
checkPainter() Проверяет наличие рисовальщика глифов. |
protected Object |
clone() Создает поверхностную копию. |
View |
createFragment(int p0,
int p1) Создает представление, представляющее собой часть элемента. |
float |
getAlignment(int axis) Определяет желаемое выравнивание этого представления по оси. |
Color |
getBackground() Получает цвет фона, используемый для рендеринга глифов. |
int |
getBreakWeight(int axis,
float pos,
float len) Определяет привлекательность точки разбиения в этом представлении. |
int |
getEndOffset() Получает часть модели, за которую отвечает это представление. |
Font |
getFont() Получает шрифт, на основе которого должны быть основаны глифы. |
Color |
getForeground() Получает цвет переднего плана, используемый для рендеринга глифов. |
GlyphView.GlyphPainter |
getGlyphPainter() Получает текущий установленный рисовальщик глифов. |
float |
getMinimumSpan(int axis) Определяет минимальный размер этого представления по оси. |
int |
getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet) Предоставляет способ определения следующей визуально отображаемой позиции модели, в которую можно поместить курсор. |
float |
getPartialSpan(int p0,
int p1) Определяет размер по той же оси, что и расширение табуляций, для части представления. |
float |
getPreferredSpan(int axis) Определяет предпочтительный размер этого представления по оси. |
int |
getStartOffset() Получает часть модели, за которую отвечает это представление. |
float |
getTabbedSpan(float x,
TabExpander e) Определяет желаемый размер при использовании заданной реализации расширения табуляций. |
TabExpander |
getTabExpander() Получает TabExpander для использования, если в этом представлении присутствуют табуляции. |
Segment |
getText(int p0,
int p1) Получает ссылку на текст, занимающий заданный диапазон. |
void |
insertUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Предоставляет уведомление о вставке в документ в позиции, за которую отвечает это представление. |
boolean |
isStrikeThrough() Определяет, должны ли глифы иметь линию зачеркивания. |
boolean |
isSubscript() Определяет, должны ли глифы отображаться как верхний индекс. |
boolean |
isSuperscript() Определяет, должны ли глифы отображаться как нижний индекс. |
boolean |
isUnderline() Определяет, должны ли глифы быть подчеркнуты. |
Shape |
modelToView(int pos,
Shape a,
Position.Bias b) Предоставляет отображение из координатного пространства модели документа в координатное пространство отображения, сопоставленного с ней. |
void |
paint(Graphics g,
Shape a) Отображает часть фрагмента стиля текста. |
void |
removeUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Предоставляет уведомление об удалении из документа в позиции, за которую отвечает это представление. |
void |
setGlyphPainter(GlyphView.GlyphPainter p) Устанавливает рисовальщик для рендеринга глифов. |
int |
viewToModel(float x,
float y,
Shape a,
Position.Bias[] biasReturn) Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели. |
Методы, унаследованные от класса javax.swing.text.View
append, forwardUpdate, forwardUpdateToView, getAttributes, getChildAllocation, getContainer, getDocument, getElement, getGraphics, getMaximumSpan, getParent, getResizeWeight, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, replace, setParent, setSize, updateChildren, updateLayout, viewToModel Методы, унаследованные от класса java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
GlyphView
public GlyphView(Element elem)
Создаёт новый вид, оболочку над элементом.
- Параметры:
-
elem- элемент
Методы
clone
protected final Object clone()
Создаёт неглубокую копию. Используется методами createFragment и breakView.
getGlyphPainter
public GlyphView.GlyphPainter getGlyphPainter()
Получить текущего установленного рисовальщика глифов. Если рисовальщик ещё не установлен и по умолчанию не требуется, возвращает null.
setGlyphPainter
public void setGlyphPainter(GlyphView.GlyphPainter p)
Устанавливает рисовальщик для отрисовки глифов.
getText
public Segment getText(int p0,
int p1) Получить ссылку на текст, занимающий указанный диапазон. Обычно используется GlyphPainter для определения символов, для которых нужно отрисовать глифы.
- Параметры:
-
p0- начальный смещение в документе >= 0 -
p1- конечное смещение в документе >= p0 - Возвращает:
- объект
Segmentсодержащий текст
getBackground
public Color getBackground()
Получить цвет фона для отрисовки глифов. Если цвет фона не задан, возвращается null. Реализовано для вызова StyledDocument.getBackground если связанный документ является стилизованным документом, иначе возвращается null.
getForeground
public Color getForeground()
Получить цвет переднего плана для отрисовки глифов. Если цвет переднего плана не задан, возвращается null. Реализовано для вызова StyledDocument.getBackground если связанный документ является StyledDocument. Если связанный документ не является StyledDocument, используется цвет переднего плана связанного компонента. Если связанного компонента нет, возвращается null.
getFont
public Font getFont()
Получить шрифт, на основе которого должны отрисовываться глифы. Реализовано для вызова StyledDocument.getFont если связанный документ является StyledDocument. Если связанный документ не является StyledDocument, используется шрифт связанного компонента. Если связанного компонента нет, возвращается null.
isUnderline
public boolean isUnderline()
Определяет, должны ли глифы быть подчеркнутыми. Если true, должна быть нарисована линия подчёркивания по основанию.
isStrikeThrough
public boolean isStrikeThrough()
Определяет, должны ли глифы иметь линию зачёркивания. Если true, должна быть нарисована линия через центр глифов.
isSubscript
public boolean isSubscript()
Определяет, должны ли глифы быть отрисованы как подстрочные.
isSuperscript
public boolean isSuperscript()
Определяет, должны ли глифы быть отрисованы как надстрочные.
getTabExpander
public TabExpander getTabExpander()
Получить TabExpander для использования, если в этом представлении присутствуют табуляции.
checkPainter
protected void checkPainter()
Проверить существование рисовальщика глифов. Если рисовальщик отсутствует, будет установлен рисовальщик по умолчанию.
getTabbedSpan
public float getTabbedSpan(float x,
TabExpander e) Определяет желаемый диапазон при использовании данного метода расширения табуляции.
- Определяется в:
-
getTabbedSpanв интерфейсеTabableView - Параметры:
-
x- позиция, в которой будет находиться представление для целей расширения табуляции >= 0. -
e- способ расширения табуляции при её встрече. - Возвращает:
- желаемый диапазон >= 0
- См. также:
TabableView.getTabbedSpan(float, javax.swing.text.TabExpander)
getPartialSpan
public float getPartialSpan(int p0,
int p1) Определяет диапазон вдоль той же оси, что и расширение табуляции, для части представления. Предполагается, что диапазон, предоставленный, не содержит табуляции.
Этот метод может быть вызван при обработке getTabbedSpan или getPreferredSize. Он должен организовать свой буфер текста для измерений.
- Определяется в:
-
getPartialSpanв интерфейсеTabableView - Параметры:
-
p0- начальное смещение в документе >= 0 -
p1- конечное смещение в документе >= p0 - Возвращает:
- диапазон >= 0
getStartOffset
public int getStartOffset()
Получает часть модели, за которую это представление отвечает.
- Переопределяет:
-
getStartOffsetв классеView - Возвращает:
- начальное смещение в модели
- См. также:
View.getStartOffset()
getEndOffset
public int getEndOffset()
Получает часть модели, за которую это представление отвечает.
- Переопределяет:
-
getEndOffsetв классеView - Возвращает:
- конечное смещение в модели
- См. также:
View.getEndOffset()
paint
public void paint(Graphics g,
Shape a) Отрисовывает часть текстового стилизованного блока.
- Определяется в:
-
paintв классеView - Параметры:
-
g- поверхность отрисовки -
a- выделенная область для отрисовки
getMinimumSpan
public float getMinimumSpan(int axis)
Определяет минимальный диапазон для этого представления вдоль оси.
Эта реализация возвращает наибольшую непрерывную область внутри представления в качестве минимального диапазона для View.X_AXIS.
- Переопределяет:
-
getMinimumSpanв классеView - Параметры:
-
axis- может быть либоView.X_AXISилиView.Y_AXIS - Возвращает:
- минимальный диапазон, в который можно отрисовать представление
- Исключения:
-
IllegalArgumentException- если параметрaxisнекорректен - См. также:
View.getMinimumSpan(int)
getPreferredSpan
public float getPreferredSpan(int axis)
Определяет предпочтительный диапазон для этого представления вдоль оси.
- Определяется в:
-
getPreferredSpanв классеView - Параметры:
-
axis- может быть либо View.X_AXIS или View.Y_AXIS - Возвращает:
- диапазон, который представление хочет, чтобы был отрисован в него >= 0. Обычно представлению сообщается, чтобы отрисовать его в возвращённый диапазон, хотя гарантии нет. Родитель может выбрать изменение размера или разрыв представления.
- См. также:
View.getPreferredSpan(int)
getAlignment
public float getAlignment(int axis)
Определяет желаемое выравнивание для этого представления вдоль оси. Для метки выравнивание происходит вдоль базовой линии шрифта по оси Y, и выравнивание суперкласса по оси X.
- Переопределяет:
-
getAlignmentв классеView - Параметры:
-
axis- может быть либо View.X_AXIS или View.Y_AXIS - Возвращает:
- желаемое выравнивание. Должно быть значением между 0.0 и 1.0 включительно, где 0 указывает выравнивание в начале, а 1.0 указывает выравнивание до полного диапазона от начала. Выравнивание 0.5 будет центром представления.
modelToView
public Shape modelToView(int pos,
Shape a,
Position.Bias b)
throws BadLocationException Предоставляет отображение из координатного пространства модели документа в координатное пространство представления, сопоставленного с ним.
- Определяется в:
-
modelToViewв классеView - Параметры:
-
pos- позиция для преобразования >= 0 -
a- выделенная область для отрисовки -
b- либоPosition.Bias.ForwardилиPosition.Bias.Backward - Возвращает:
- окружность заданной позиции
- Исключения:
-
BadLocationException- если заданная позиция не представляет действительное местоположение в связанном документе - См. также:
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
viewToModel
public int viewToModel(float x,
float y,
Shape a,
Position.Bias[] biasReturn) Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели.
- Определяется в:
-
viewToModelв классеView - Параметры:
-
x- координата X >= 0 -
y- координата Y >= 0 -
a- выделенная область для отрисовки -
biasReturn- либоPosition.Bias.ForwardилиPosition.Bias.Backwardвозвращается в качестве нулевого элемента этого массива - Возвращает:
- местоположение в модели, наиболее точно представляющее данную точку представления >= 0
- См. также:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
getBreakWeight
public int getBreakWeight(int axis,
float pos,
float len) Определяет привлекательность возможности разрыва в этом представлении. Это можно использовать для определения представления, наиболее привлекательного для вызова breakView в процессе форматирования. Чем выше вес, тем более привлекателен разрыв. Значение, равное или меньшее View.BadBreakWeight, не должно рассматриваться для разрыва. Значение, большее или равное View.ForcedBreakWeight, должно быть прервано.
Эта реализация перенаправляет запрос на суперкласс для Y_AXIS. По оси X могут быть возвращены следующие значения:
- View.ExcellentBreakWeight
- если перед желаемым местом разрыва находится пробел.
- View.BadBreakWeight
- если желаемое место разрыва приводит к разрыву начального смещения.
- View.GoodBreakWeight
- если другие условия не выполняются.
- Overrides:
-
getBreakWeightв классеView - Параметры:
-
axis- может быть либо View.X_AXIS, либо View.Y_AXIS -
pos- потенциальное местоположение начала разрыва представления >= 0. Это может быть полезно для расчета позиций табуляции. -
len- указывает относительную длину от pos, где желательно потенциальный разрыв >= 0. - Возвращает:
- вес, который должен быть значением между View.ForcedBreakWeight и View.BadBreakWeight.
- См. также:
-
LabelView,ParagraphView,View.BadBreakWeight,View.GoodBreakWeight,View.ExcellentBreakWeight,View.ForcedBreakWeight
breakView
public View breakView(int axis,
int p0,
float pos,
float len) Разбивает это представление по заданной оси на заданной длине. Это реализовано для попытки разрыва на месте пробела и возвращает фрагмент с пробелом в конце. Если место пробела не найдено, используется ближайший символ.
- Overrides:
-
breakViewв классеView - Параметры:
-
axis- может быть либо View.X_AXIS, либо View.Y_AXIS -
p0- местоположение в модели, где фрагмент должен начать своё представление >= 0. -
pos- позиция вдоль оси, которую будет занимать разрыв представления >= 0. Это может быть полезно для расчётов табуляции. -
len- указывает расстояние вдоль оси, где желателен потенциальный разрыв >= 0. - Возвращает:
- фрагмент представления, представляющий заданный отрезок, если представление может быть разбито. Если представление не поддерживает поведение разрыва, возвращается само представление.
- См. также:
View.breakView(int, int, float, float)
createFragment
public View createFragment(int p0,
int p1) Создаёт представление, которое отображает часть элемента. Это может быть полезно во время операций форматирования для измерения фрагментов представления. Если представление не поддерживает фрагментацию (по умолчанию), оно должно вернуть себя.
Это представление поддерживает фрагментацию. Оно реализовано для возвращения вложенного класса, который разделяет состояние в этом представлении, представляя только часть представления.
- Overrides:
-
createFragmentв классеView - Параметры:
-
p0- начальный смещение >= 0. Это должно быть значение, большее или равное начальному смещению элемента и меньше конечного смещения элемента. -
p1- конечное смещение > p0. Это должно быть значение, меньшее или равное конечному смещению элемента и больше начального смещения элемента. - Возвращает:
- фрагмент представления или само представление, если представление не поддерживает разделение на фрагменты
- См. также:
LabelView
getNextVisualPositionFrom
public int getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
throws BadLocationException Предоставляет способ определить следующее визуально отображаемое местоположение модели, в которое можно поместить курсор. Некоторые представления могут быть невидимыми, они могут не находиться в том же порядке, что и в модели, или они просто могут не допускать доступа к некоторым местоположениям в модели. Этот метод позволяет указать позицию для преобразования в диапазоне >=0. Если значение равно -1, позиция будет рассчитана автоматически. Если значение < -1, будет выброшено исключение BadLocationException.
- Overrides:
-
getNextVisualPositionFromв классеView - Параметры:
-
pos- позиция для преобразования -
a- выделенная область для отрисовки -
direction- направление от текущей позиции, которое можно рассматривать как клавиши со стрелками на клавиатуре. Это может быть SwingConstants.WEST, SwingConstants.EAST, SwingConstants.NORTH или SwingConstants.SOUTH. - Возвращает:
- местоположение в модели, которое лучше всего представляет следующее визуальное положение.
- Исключения:
-
BadLocationException- заданная позиция не является допустимой позицией в документе -
IllegalArgumentException- для недопустимого направления
insertUpdate
public void insertUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Предоставляет уведомление о том, что что-то было вставлено в документ в местоположении, за которое это представление отвечает. Это реализовано для вызова preferenceChanged вдоль оси, на которой отрисовываются глифы.
- Overrides:
-
insertUpdateв классеView - Параметры:
-
e- информация о изменении из связанного документа -
a- текущее размещение представления -
f- фабрика для использования для перестройки, если у представления есть дочерние элементы - См. также:
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
removeUpdate
public void removeUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Предоставляет уведомление о том, что что-то было удалено из документа в местоположении, за которое это представление отвечает. Это реализовано для вызова preferenceChanged вдоль оси, на которой отрисовываются глифы.
- Overrides:
-
removeUpdateв классеView - Параметры:
-
e- информация о изменении из связанного документа -
a- текущее размещение представления -
f- фабрика для использования для перестройки, если у представления есть дочерние элементы - См. также:
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
changedUpdate
public void changedUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Предоставляет уведомление от документа о том, что атрибуты были изменены в местоположении, за которое это представление отвечает. Это реализовано для вызова preferenceChanged как вдоль горизонтальной, так и вдоль вертикальной оси.
- Overrides:
-
changedUpdateв классеView - Параметры:
-
e- информация о изменении из связанного документа -
a- текущее размещение представления -
f- фабрика для использования для перестройки, если у представления есть дочерние элементы - См. также:
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
© 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.