Класс 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)
Устанавливает рисовальщик для рисования глифов.
- Параметры:
-
p- рисовальщик для рисования глифов
getText
public Segment getText(int p0,
int p1) Получает ссылку на текст, занимающий заданный диапазон. Обычно используется рисовальщиком глифов для определения символов, для которых следует рисовать глифы.
- Параметры:
-
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 для использования, если в представлении есть табуляции.
- Возвращает:
- 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) Определяет интервал вдоль той же оси, что и расширение табуляции для части представления. Это предназначено для использования методом TabExpander в случаях, когда расширение табуляции включает выравнивание части текста, не содержащей пробелы, относительно отступа табуляции. Поэтому предполагается, что указанный диапазон не содержит табуляций.
Этот метод может вызываться при обработке 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_AXIS могут быть возвращены следующие значения.
- View.ExcellentBreakWeight
- если перед желаемым местом разрыва есть пробел.
- View.BadBreakWeight
- если желаемое место разрыва приводит к месту разрыва начального смещения.
- View.GoodBreakWeight
- если другие условия не выполняются.
- Переопределяет:
-
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) Разбивает это представление по заданной оси в заданной длине. Это реализовано для попытки разрыва по месту расположения пробела и возвращает фрагмент с пробелом в конце. Если место пробела не найдено, используется ближайший символ.
- Переопределяет:
-
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) Создает представление, которое представляет собой часть элемента. Это потенциально полезно во время операций форматирования для проведения измерений фрагментов представления. Если представление не поддерживает фрагментацию (по умолчанию), оно должно возвращать себя.
Это представление поддерживает фрагментацию. Оно реализовано таким образом, чтобы возвращать вложенный класс, который разделяет состояние в этом представлении, представляющем только часть представления.
- Переопределяет:
-
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.
- Переопределяет:
-
getNextVisualPositionFromв классеView - Параметры:
-
pos- позиция для преобразования -
a- выделенная область для отрисовки -
direction- направление от текущей позиции, которое можно представить как стрелки управления, обычно находящиеся на клавиатуре. Это может быть SwingConstants.WEST, SwingConstants.EAST, SwingConstants.NORTH или SwingConstants.SOUTH. -
b- смещение -
biasRet- возвращаемое смещение - Возвращает:
- местоположение в модели, которое наилучшим образом представляет следующую позицию визуального расположения.
- Исключения:
-
BadLocationException- заданная позиция не является допустимой позицией в документе -
IllegalArgumentException- для недопустимого направления
insertUpdate
public void insertUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Предоставляет уведомление о том, что что-то было вставлено в документ в место, за которое это представление отвечает. Это реализовано для вызова preferenceChanged по оси, на которой отрисовываются глифы.
- Переопределяет:
-
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 по оси, на которой отрисовываются глифы.
- Переопределяет:
-
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 по обеим осям, горизонтальной и вертикальной.
- Переопределяет:
-
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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/text/GlyphView.html