Spec-Zone.ru › OpenJDK 24

Вид класса

java.lang.Object
javax.swing.text.View
Все реализованные интерфейсы:
SwingConstants
Непосредственные известные подклассы:
AsyncBoxView, ComponentView, CompositeView, GlyphView, IconView, ImageView, PlainView
public abstract class View extends Object implements SwingConstants

Важной частью пакета текстовых компонентов является класс View. Как следует из названия, он представляет собой вид модели текста или части модели текста. Именно этот класс отвечает за внешний вид компонента текста. Вид не предназначен для того, чтобы быть чем-то совершенно новым и сложным, а скорее напоминает легкий компонент.

По умолчанию вид очень легкий. Он содержит ссылку на родительский вид, из которого он может извлечь много информации без хранения состояния, и ссылку на часть модели (Element). Вид не обязан точно отображать элемент в модели, это просто типичное и, следовательно, удобное отображение. В качестве альтернативы, вид может поддерживать несколько объектов Position, чтобы сохранить своё положение в модели (то есть представить фрагмент элемента). Это обычно результат форматирования, когда виды разбиваются на части. Удобство значимых связей с элементом упрощает создание фабрик для создания видов и отслеживание частей вида по мере изменения модели, когда вид должен отразить эти изменения. Простые виды, следовательно, представляют элемент напрямую, а сложные виды — нет.

Вид выполняет следующие задачи:

Участвовать в компоновке.

Вид имеет метод setSize, который похож на методы doLayout и setSize в Component, объединённые вместе. Вид имеет метод preferenceChanged, который похож на метод invalidate в Component, за исключением того, что можно инвалидировать только одну ось, и идентифицируется дочерний элемент, запросивший изменение.

Вид выражает желаемый размер в терминах трёх значений: минимального, предпочтительного и максимального. Компоновка в представлении может выполняться независимо по каждой оси. Для правильно работающей реализации View минимальный размер будет меньше или равен предпочтительному размеру, который в свою очередь будет меньше или равен максимальному размеру.

The above text describes this graphic.

Минимальный набор методов для компоновки:

  • getMinimumSpan
  • getPreferredSpan
  • getMaximumSpan
  • getAlignment
  • preferenceChanged
  • setSize

Метод setSize должен быть готов к вызову несколько раз (то есть он может быть вызван даже если размер не изменился). Метод setSize обычно вызывается, чтобы убедиться, что компоновка View завершена перед выполнением операции с ним, требующей обновлённой компоновки. Размер представления всегда должен устанавливаться в значение, попадающее между минимальным и максимальным размерами, заданными этим представлением. Кроме того, представление всегда должно вызывать метод preferenceChanged у родителя, если оно изменило значения компоновки, и ожидает, что родитель учтёт эти изменения. Родительский вид не обязан распознавать изменение до тех пор, пока не получен запрос preferenceChanged. Это позволяет реализациям родительских представлений кэшировать требования дочерних элементов при необходимости. Последовательность вызовов выглядит примерно так:

Sample calling sequence between parent view and child view:
       setSize, getMinimum, getPreferred, getMaximum, getAlignment, setSize

Точная последовательность вызовов зависит от функциональности компоновки родительского представления (если у представления есть дочерние элементы). Представление может собирать предпочтения дочерних элементов перед определением того, что оно предоставит каждому дочернему элементу, или может итеративно обновлять дочерние элементы по одному за раз.

Отобразить часть модели.

Это делается в методе paint, который практически идентичен методу paint компонента. Предполагается, что представления могут потенциально заполнять довольно большое дерево. Представление View имеет следующие семантики для рендеринга:

  • Представление получает своё размещение от родителя во время отрисовки, поэтому оно должно быть готово перекомпоноваться, если выделенная область отличается от той, с которой оно готово работать.
  • Система координат такая же, как у размещающего Component (то есть Component, возвращаемое методом getContainer). Это означает, что дочернее представление существует в той же системе координат, что и родительское представление, если родитель явно не изменил систему координат. Для планирования перерисовки представление может вызвать repaint размещающего Component.
  • По умолчанию дети не обрезаются. Эффективнее разрешить обрезку представления только в том случае, если оно действительно в этом нуждается.
  • Объект Graphics не инициализируется каким-либо образом. Представление должно установить необходимые настройки.
  • Представление View по своей сути прозрачное. Хотя представление может отображаться в своей полной области выделения, обычно это не так. Отрисовка выполняется путём обхода дерева реализаций View. Каждое View отвечает за отрисовку своих дочерних элементов. Это поведение необходимо для обеспечения потоковой безопасности. Хотя реализация представлений не обязательно должна быть реализована с учётом потоковой безопасности, другие реализации представлений, использующие конкурентность, могут полагаться на обход дерева для обеспечения потоковой безопасности.
  • Порядок представлений относительно модели зависит от реализации. Хотя дочерние представления обычно располагаются в том же порядке, что и в модели, они могут визуально располагаться в совершенно другом порядке. Реализации представлений могут иметь Z-порядок, если дети перекрывают друг друга.

Методы для отрисовки:

  • paint
Перевод между системами координат модели и представления.

Поскольку объекты представления создаются фабрикой и, следовательно, не могут гарантировать определённый шаблон, необходимо выполнить преобразование, чтобы правильно определить пространственное представление модели. Методы для этого:

  • modelToView
  • viewToModel
  • getDocument
  • getElement
  • getStartOffset
  • getEndOffset

Компоновка должна быть действительной перед попыткой преобразования. Преобразование недействительно и не должно выполняться во время распространения изменений из модели через DocumentEvent.

Отклик на изменения в модели.

Если весь вид представлен многими частями (что лучше всего, если вы хотите иметь возможность изменять вид и писать наименьшее количество нового кода), было бы непрактично иметь большое количество DocumentListener. Если каждое представление следило бы за моделью, только несколько фактически интересовались бы изменениями, транслируемыми в любой момент времени. Поскольку модель не знает о представлениях, у неё нет способа отфильтровать распространение информации о изменениях. Вместо этого иерархия представлений отвечает за распространение информации о изменениях. На любом уровне иерархии представлений это представление знает достаточно о своих дочерних элементах, чтобы лучше распределить информацию об изменениях дальше. Поэтому изменения распространяются, начиная с корня иерархии представлений. Методы для этого:

  • insertUpdate
  • removeUpdate
  • changedUpdate

Краткое описание полей

Модификатор и тип Поле Описание
static final int BadBreakWeight
Вес, указывающий, что представление является плохой точкой разрыва для форматирования.
static final int ExcellentBreakWeight
Вес, указывающий, что представление поддерживает разрыв, и это очень привлекательное место для разрыва.
static final int ForcedBreakWeight
Вес, указывающий, что представление поддерживает разрыв, и оно должно быть разорвано для правильного представления, когда помещено в представление, которое форматирует своих детей, разрывая их.
static final int GoodBreakWeight
Вес, указывающий, что представление поддерживает разрыв, но, вероятно, существуют лучшие возможности.
static final int X_AXIS
Ось для операций форматирования/разрыва.
static final int 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

Краткое описание конструкторов

Конструктор Описание
View(Element elem)
Создает новый объект View.

Краткое описание методов

Модификатор и тип Метод Описание
void append(View v)
Добавляет одно дочернее представление.
View breakView(int axis, int offset, float pos, float len)
Пытается разорвать это представление по заданной оси.
void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
Получает уведомление от документа о том, что атрибуты были изменены в местоположении, за которое отвечает это представление.
View createFragment(int p0, int p1)
Создает представление, представляющее часть элемента.
protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
Передает заданный DocumentEvent дочерним представлениям, которым нужно сообщить о изменении модели.
protected void forwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f)
Передает DocumentEvent заданному дочернему представлению.
float getAlignment(int axis)
Определяет желаемое выравнивание этого представления вдоль оси.
AttributeSet getAttributes()
Извлекает атрибуты для использования при отрисовке.
int getBreakWeight(int axis, float pos, float len)
Определяет, насколько привлекательной является точка разрыва в этом представлении.
Shape getChildAllocation(int index, Shape a)
Извлекает выделение для данного дочернего представления.
Container getContainer()
Извлекает контейнер, содержащий представление.
Document getDocument()
Извлекает модель, связанную с представлением.
Element getElement()
Извлекает структурную часть объекта, к которой сопоставлено это представление.
int getEndOffset()
Извлекает часть модели, за которую отвечает это представление.
Graphics getGraphics()
Извлекает Graphics для отрисовки.
float getMaximumSpan(int axis)
Определяет максимальную протяженность этого представления вдоль оси.
float getMinimumSpan(int axis)
Определяет минимальную протяженность этого представления вдоль оси.
int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
Предоставляет способ определения следующего визуально представленного местоположения модели, в котором можно разместить курсор.
View getParent()
Возвращает родителя представления.
abstract float getPreferredSpan(int axis)
Определяет предпочтительную протяженность этого представления вдоль оси.
int getResizeWeight(int axis)
Определяет масштабируемость представления вдоль заданной оси.
int getStartOffset()
Извлекает часть модели, за которую отвечает это представление.
String getToolTipText(float x, float y, Shape allocation)
Возвращает текст всплывающей подсказки в указанном месте.
View getView(int n)
Получает n-е дочернее представление.
int getViewCount()
Возвращает количество представлений в этом представлении.
ViewFactory getViewFactory()
Извлекает реализацию ViewFactory, которая питает иерархию представлений.
int getViewIndex(float x, float y, Shape allocation)
Возвращает индекс дочернего представления, представляющий заданное положение в представлении.
int getViewIndex(int pos, Position.Bias b)
Возвращает индекс дочернего представления, представляющий заданное положение в модели.
void insert(int offs, View v)
Вставляет одно дочернее представление.
void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
Получает уведомление о том, что что-то было вставлено в документ в местоположении, за которое отвечает это представление.
boolean isVisible()
Возвращает логическое значение, указывающее, видимым ли является представление.
Shape modelToView(int pos, Shape a)
Устарело.
abstract Shape modelToView(int pos, Shape a, Position.Bias b)
Предоставляет отображение, для заданного символа, из координатного пространства модели документа в координатное пространство представления.
Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)
Предоставляет отображение, для заданной области, из координатного пространства модели документа в координатное пространство представления.
abstract void paint(Graphics g, Shape allocation)
Отображает с помощью заданной поверхности отрисовки и области на этой поверхности.
void preferenceChanged(View child, boolean width, boolean height)
Дочерние представления могут вызвать это у родителя, чтобы указать, что предпочтение изменилось и должно быть переоценено для размещения.
void remove(int i)
Удаляет одно из дочерних элементов в заданном положении.
void removeAll()
Удаляет всех дочерних элементов.
void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
Получает уведомление о том, что что-то было удалено из документа в местоположении, за которое отвечает это представление.
void replace(int offset, int length, View[] views)
Заменяет дочерние представления.
void setParent(View parent)
Устанавливает родительское представление для этого представления.
void setSize(float width, float height)
Устанавливает размер представления.
protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
Обновляет дочерние представления в ответ на получение уведомления о том, что модель изменилась, и есть запись изменений для элемента, за который отвечает это представление.
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
Обновляет макет в ответ на получение уведомления об изменении от модели.
int viewToModel(float x, float y, Shape a)
Устарело.
abstract int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

BadBreakWeight

public static final int BadBreakWeight
Вес, указывающий, что представление является плохой точкой разрыва для целей форматирования. Это значение указывает, что не следует пытаться разбить представление на фрагменты, поскольку представление не было написано для поддержки фрагментации.
См. также:
  • getBreakWeight(int, float, float)
  • GoodBreakWeight
  • ExcellentBreakWeight
  • ForcedBreakWeight
  • Значения постоянных полей

GoodBreakWeight

public static final int GoodBreakWeight
Вес, указывающий, что представление поддерживает разрыв, но, вероятно, существуют лучшие возможности.
См. также:
  • getBreakWeight(int, float, float)
  • BadBreakWeight
  • ExcellentBreakWeight
  • ForcedBreakWeight
  • Значения постоянных полей

ExcellentBreakWeight

public static final int ExcellentBreakWeight
Вес, указывающий, что представление поддерживает разрыв, и это представляет собой очень привлекательное место для разрыва.
См. также:
  • getBreakWeight(int, float, float)
  • BadBreakWeight
  • GoodBreakWeight
  • ForcedBreakWeight
  • Значения постоянных полей

ForcedBreakWeight

public static final int ForcedBreakWeight
Вес, указывающий, что представление поддерживает разрыв и должно быть разорвано для правильного представления при размещении в представлении, которое форматирует своих дочерние элементы, разрывая их.
См. также:
  • getBreakWeight(int, float, float)
  • BadBreakWeight
  • GoodBreakWeight
  • ExcellentBreakWeight
  • Значения постоянных полей

X_AXIS

public static final int X_AXIS
Ось для операций форматирования/разрыва.
См. также:
  • Значения постоянных полей

Y_AXIS

public static final int Y_AXIS
Ось для операций форматирования/разрыва.
См. также:
  • Значения постоянных полей

Подробное описание конструкторов

View

public View(Element elem)
Создаёт новый View объект.
Параметры:
elem - Element для представления

Подробное описание методов

getParent

public View getParent()
Возвращает родителя представления.
Возвращает:
родителя или null, если он отсутствует

isVisible

public boolean isVisible()
Возвращает логическое значение, указывающее, отображается представление или нет. По умолчанию все представления отображаются.
Возвращает:
всегда возвращает true

getPreferredSpan

public abstract float getPreferredSpan(int axis)
Определяет предпочтительный размах для этого представления вдоль оси.
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
размах, который представление хочет отображать. Обычно представление получает указание отображаться в возвращаемом размахе, хотя гарантии нет. Родитель может выбрать изменение размера или разбиение представления

getMinimumSpan

public float getMinimumSpan(int axis)
Определяет минимальный размах для этого представления вдоль оси.
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
минимальный размах, в который представление может быть отображено
См. также:
  • getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)
Определяет максимальный размах для этого представления вдоль оси.
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
максимальный размах, в который представление может быть отображено
См. также:
  • getPreferredSpan(int)

preferenceChanged

public void preferenceChanged(View child, boolean width, boolean height)
Дочерние представления могут вызвать это в родительском представлении, чтобы указать, что предпочтения изменились и должны быть пересмотрены для макета. По умолчанию это просто распространяется вверх к следующему родителю. Корневое представление вызовет revalidate на связанном компоненте текста.
Параметры:
child - дочернее представление
width - true, если предпочтение ширины изменилось
height - true, если предпочтение высоты изменилось
См. также:
  • JComponent.revalidate()

getAlignment

public float getAlignment(int axis)
Определяет желаемое выравнивание для этого представления вдоль оси. Возвращается желаемое выравнивание. Это значение должно быть больше или равно 0.0 и меньше или равно 1.0, где 0 указывает выравнивание по началу, а 1.0 указывает выравнивание по всему размаху, удаленному от начала. Выравнивание 0.5 будет центром представления.
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
значение 0.5

paint

public abstract void paint(Graphics g, Shape allocation)
Отображает, используя указанную поверхность отрисовки и область на этой поверхности. Представлению может потребоваться выполнить макет и создать дочерние представления, чтобы иметь возможность отображаться в указанном размещении.
Параметры:
g - используемая поверхность отрисовки
allocation - область размещения для отрисовки

setParent

public void setParent(View parent)
Устанавливает родительское представление для этого представления. Это гарантированно будет вызываться перед любыми другими методами, если родительское представление работает должным образом. Это также последний вызываемый метод, поскольку он вызывается, чтобы указать, что представление было удалено из иерархии. При вызове этого метода для установки родителя в null этот метод делает то же самое для каждого из его дочерних элементов, распространяя уведомление, что они были отключены от дерева представления. Если это переопределяется, super.setParent() должен быть вызван.
Параметры:
parent - новый родитель или null, если представление удаляется из родителя

getViewCount

public int getViewCount()
Возвращает количество представлений в этом представлении. Поскольку по умолчанию это не составное представление, возвращается 0.
Возвращает:
количество представлений >= 0

getView

public View getView(int n)
Получает n-ое дочернее представление. Поскольку по умолчанию нет дочерних элементов, возвращается null.
Параметры:
n - номер представления для получения, >= 0 && < getViewCount()
Возвращает:
представление

removeAll

public void removeAll()
Удаляет все дочерние элементы. Это удобный вызов для replace.
С:
1.3

remove

public void remove(int i)
Удаляет один из дочерних элементов в указанной позиции. Это удобный вызов для replace.
Параметры:
i - позиция
С:
1.3

вставка

public void insert(int offs, View v)
Вставляет единственный дочерний вид. Это удобный вызов для replace.
Параметры:
offs - смещение вставки представления перед >= 0
v - представление
С момента:
1.3
См. также:
  • replace(int, int, javax.swing.text.View[])

добавить

public void append(View v)
Добавляет единственный дочерний вид. Это удобный вызов для replace.
Параметры:
v - представление
С момента:
1.3
См. также:
  • replace(int, int, javax.swing.text.View[])

заменить

public void replace(int offset, int length, View[] views)
Заменяет дочерние представления. Если удалять нечего, это действует как вставка. Если добавлять нечего, это действует как удаление. Удаляемые представления получат родителя, установленного в null, и внутренняя ссылка на них будет удалена, чтобы их можно было собрать мусором. Эта реализация ничего не делает, потому что по умолчанию у представления нет дочерних элементов.
Параметры:
offset - начальный индекс в дочерних представлениях для вставки новых представлений. Должно быть значение >= 0 и <= getViewCount
length - количество существующих дочерних представлений для удаления. Должно быть значение >= 0 и <= (getViewCount() - offset).
views - дочерние представления для добавления. Это значение может быть null, чтобы указать, что дочерние элементы не добавляются (полезно для удаления).
С момента:
1.3

getViewIndex

public int getViewIndex(int pos, Position.Bias b)
Возвращает индекс дочернего представления, представляющий данную позицию в модели. По умолчанию у представления нет дочерних элементов, поэтому эта функция реализована так, чтобы возвращать -1, чтобы указать, что для любой позиции нет допустимого индекса дочернего элемента.
Параметры:
pos - позиция >= 0
b - смещение
Возвращает:
индекс представления, представляющего заданную позицию, или -1, если представление не представляет эту позицию
С момента:
1.3

getChildAllocation

public Shape getChildAllocation(int index, Shape a)
Извлекает распределение для заданного дочернего представления. Это позволяет узнать, где расположены различные представления, не предполагая, как представления хранят свое расположение. Это возвращает null, так как по умолчанию нет дочерних представлений.
Параметры:
index - индекс дочернего элемента, >= 0 && < getViewCount()
a - распределение для данного представления
Возвращает:
распределение для дочернего элемента

getNextVisualPositionFrom

public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
Предоставляет способ определения следующего визуально представленного расположения модели, в котором можно разместить курсор. Некоторые представления могут быть невидимыми, они могут не находиться в том же порядке, что и в модели, или они просто могут не допускать доступа к некоторым расположениям в модели. Этот метод позволяет указать позицию для преобразования в диапазоне >=0. Если значение -1, позиция будет рассчитана автоматически. Если значение < -1, будет выброшено исключение BadLocationException.
Параметры:
pos - позиция для преобразования
b - смещение
a - область выделения для отрисовки
direction - направление от текущей позиции, которое можно рассматривать как клавиши со стрелками на клавиатуре. Это будет одно из следующих значений:
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
biasRet - возвращенное смещение
Возвращает:
местоположение в модели, которое лучше всего представляет следующую позицию визуального отображения
Исключения:
BadLocationException - заданная позиция не является допустимой позицией в документе
IllegalArgumentException - если direction не имеет одного из указанных выше значений

modelToView

public abstract Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
Предоставляет отображение для заданного символа из пространства координат модели документа в пространство координат представления.
Параметры:
pos - позиция нужного символа (>=0)
a - область представления, которая охватывает запрашиваемый символ
b - смещение в сторону предыдущего символа или следующего символа, представленного смещением, в случае, если позиция является границей двух представлений; b будет иметь одно из этих значений:
  • Position.Bias.Forward
  • Position.Bias.Backward
Возвращает:
прямоугольник, в пространстве координат представления, символа в указанной позиции
Исключения:
BadLocationException - если указанная позиция не представляет действительное расположение в ассоциированном документе
IllegalArgumentException - если b не является одним из допустимых Position.Bias значений, указанных выше
См. также:
  • viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

modelToView

public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) throws BadLocationException
Предоставляет отображение для заданного диапазона из пространства координат модели документа в пространство координат представления. Указанный диапазон создается как объединение позиций первого и последнего символов.
Параметры:
p0 - позиция первого символа (>=0)
b0 - смещение позиции первого символа, в сторону предыдущего или следующего символа, представленного смещением, в случае, если позиция является границей двух представлений; b0 будет иметь одно из этих значений:
  • Position.Bias.Forward
  • Position.Bias.Backward
p1 - позиция последнего символа (>=0)
b1 - смещение для позиции второго символа, определенное одним из допустимых значений, показанных выше
a - область представления, которая охватывает запрашиваемый диапазон
Возвращает:
прямоугольник, который является объединением диапазона, заданного позициями первого и последнего символов
Исключения:
BadLocationException - если заданная позиция не представляет действительное расположение в ассоциированном документе
IllegalArgumentException - если b0 или b1 не являются одним из допустимых Position.Bias значений, перечисленных выше
См. также:
  • viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

viewToModel

public abstract int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Предоставляет отображение из пространства координат представления в логическое пространство координат модели. Аргумент biasReturn будет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или к предыдущему символу в модели.
Параметры:
x - координата X >= 0
y - координата Y >= 0
a - область выделения для отрисовки
biasReturn - возвращаемое смещение
Возвращает:
местоположение в модели, которое лучше всего представляет данную точку в представлении >= 0. Аргумент biasReturn будет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или к предыдущему символу в модели.

insertUpdate

public void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
Уведомляет о том, что что-то было вставлено в документ в место, за которое отвечает этот вид. Чтобы уменьшить нагрузку на подклассы, эта функциональность распределена по следующим вызовам, которые подклассы могут переопределить:
  1. updateChildren вызывается, если были какие-либо изменения в элементе, за который отвечает этот вид. Если у этого вида есть дочерние представления, которые представляют дочерние элементы, то этот метод должен выполнить необходимые действия, чтобы убедиться, что дочерние представления правильно представляют модель.
  2. forwardUpdate вызывается для передачи DocumentEvent соответствующим дочерним представлениям.
  3. updateLayout вызывается, чтобы дать представлению возможность либо исправить его макет, перепланировать макет, либо ничего не делать.
Parameters:
e - информация о изменении из связанного документа
a - текущее выделение представления
f - фабрика, используемая для перестроения, если у представления есть дочерние элементы
See Also:
  • removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

removeUpdate

public void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
Уведомляет о том, что что-то было удалено из документа в месте, за которое отвечает это представление. Чтобы уменьшить нагрузку на подклассы, эта функциональность распределена по следующим вызовам, которые подклассы могут переопределить:
  1. updateChildren вызывается, если были какие-либо изменения в элементе, за который отвечает это представление. Если у этого представления есть дочерние представления, которые представляют дочерние элементы, то этот метод должен выполнить необходимые действия, чтобы убедиться, что дочерние представления правильно представляют модель.
  2. forwardUpdate вызывается для передачи DocumentEvent соответствующим дочерним представлениям.
  3. updateLayout вызывается, чтобы дать представлению возможность либо исправить его макет, перепланировать макет, либо ничего не делать.
Parameters:
e - информация о изменении из связанного документа
a - текущее выделение представления
f - фабрика, используемая для перестроения, если у представления есть дочерние элементы
See Also:
  • insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

changedUpdate

public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
Уведомляет о том, что атрибуты были изменены в месте, за которое отвечает это представление. Чтобы уменьшить нагрузку на подклассы, эта функциональность распределена по следующим вызовам, которые подклассы могут переопределить:
  1. updateChildren вызывается, если были какие-либо изменения в элементе, за который отвечает это представление. Если у этого представления есть дочерние представления, которые представляют дочерние элементы, то этот метод должен выполнить необходимые действия, чтобы убедиться, что дочерние представления правильно представляют модель.
  2. forwardUpdate вызывается для передачи DocumentEvent соответствующим дочерним представлениям.
  3. updateLayout вызывается, чтобы дать представлению возможность либо исправить его макет, перепланировать макет, либо ничего не делать.
Parameters:
e - информация о изменении из связанного документа
a - текущее выделение представления
f - фабрика, используемая для перестроения, если у представления есть дочерние элементы
See Also:
  • insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

getDocument

public Document getDocument()
Возвращает модель, связанную с представлением.
Returns:
модель представления, null если нет

getStartOffset

public int getStartOffset()
Возвращает часть модели, за которую это представление отвечает.
Returns:
начальный смещение в модели >= 0
See Also:
  • getEndOffset()

getEndOffset

public int getEndOffset()
Возвращает часть модели, за которую это представление отвечает.
Returns:
конечное смещение в модели >= 0
See Also:
  • getStartOffset()

getElement

public Element getElement()
Возвращает структурную часть объекта, к которой это представление сопоставлено. Представление может не отвечать за весь фрагмент элемента.
Returns:
объект

getGraphics

public Graphics getGraphics()
Получает Graphics для отрисовки. Это можно использовать для определения характеристик шрифта, и оно будет отличаться для представления печати и представления компонента.
Returns:
объект Graphics для отрисовки
Since:
1.3

getAttributes

public AttributeSet getAttributes()
Возвращает атрибуты, используемые при отрисовке. По умолчанию это просто возвращает атрибуты связанного элемента. Этот метод должен использоваться вместо непосредственного использования элемента, чтобы разрешить добавление представлений-специфичных атрибутов или преобразование атрибутов в представлениях подклассами. Каждое представление должно документировать, какие атрибуты оно распознаёт для отрисовки или компоновки, и всегда получать доступ к ним через AttributeSet, возвращаемый этим методом.
Returns:
атрибуты, используемые при отрисовке

breakView

public View breakView(int axis, int offset, float pos, float len)
Пытается разбить это представление по заданной оси. Это вызывается представлениями, которые пытаются выполнить форматирование своих дочерних элементов. Например, представление абзаца обычно пытается разместить свои дочерние элементы в строки, а представления, представляющие куски текста, иногда можно разбить на более мелкие части.

Этот метод реализован для возврата самого представления, что представляет собой поведение по умолчанию при невозможности разбиения. Если представление поддерживает разбиение, начальное смещение возвращаемого представления должно быть заданным смещением, а конечное смещение должно быть меньше или равно конечному смещению разбиваемого представления.

Parameters:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
offset - расположение в модели документа, которое занимал бы разбитый фрагмент >= 0. Это было бы начальным смещением возвращаемого фрагмента
pos - позиция вдоль оси, которую занимал бы разбитый фрагмент >= 0. Это может быть полезно для расчетов табуляции
len - задаёт расстояние вдоль оси, где желательно потенциальное разбиение >= 0
Returns:
фрагмент представления, представляющий заданный диапазон, если представление можно разбить. Если представление не поддерживает поведение разбиения, возвращается само представление.
See Also:
  • ParagraphView

createFragment

public View createFragment(int p0, int p1)
Создаёт представление, отображающее часть элемента. Это может быть полезно во время операций форматирования для измерения фрагментов представления. Если представление не поддерживает фрагментацию (по умолчанию), оно должно вернуть себя.
Параметры:
p0 - начальный смещение >= 0. Должно быть значением, больше или равным начальному смещению элемента и меньше конечного смещения элемента.
p1 - конечное смещение > p0. Должно быть значением, меньше или равным конечному смещению элемента и больше начального смещения элемента.
Возвращает:
фрагмент представления или само представление, если представление не поддерживает разделение на фрагменты
См. также:
  • LabelView

getBreakWeight

public int getBreakWeight(int axis, float pos, float len)
Определяет, насколько привлекательной является возможность разрыва в этом представлении. Это может быть использовано для определения, какое представление наиболее привлекательно для вызова breakView в процессе форматирования. Например, представление, представляющее текст, содержащий пробелы, может быть более привлекательным, чем представление, не содержащее пробелов. Чем выше вес, тем более привлекателен разрыв. Значение, равное или меньшее BadBreakWeight, не должно рассматриваться для разрыва. Значение, большее или равное ForcedBreakWeight, должно быть разорвано.

Эта реализация обеспечивает поведение по умолчанию, возвращая BadBreakWeight, если длина больше длины представления, в этом случае всё представление представляет фрагмент. Если представление не было разработано для поддержки поведения разрыва, то не имеет смысла пытаться разбить представление. Примером представления, поддерживающего разрыв, является LabelView. Примером представления, использующего вес разрыва, является ParagraphView.

Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
pos - потенциальное расположение начала разрываемого представления >= 0. Это может быть полезно для расчёта позиций табуляции
len - определяет относительную длину от pos, где желателен потенциальный разрыв >= 0
Возвращает:
вес, который должен быть значением между ForcedBreakWeight и BadBreakWeight
См. также:
  • LabelView
  • ParagraphView
  • BadBreakWeight
  • GoodBreakWeight
  • ExcellentBreakWeight
  • ForcedBreakWeight

getResizeWeight

public int getResizeWeight(int axis)
Определяет возможность изменения размера представления вдоль заданной оси. Значение 0 или меньше означает, что изменение размера невозможно.
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
вес

setSize

public void setSize(float width, float height)
Устанавливает размер представления. Это должно вызвать размещение представления вдоль заданной оси, если у него есть какие-либо задачи размещения.
Параметры:
width - ширина >= 0
height - высота >= 0

getContainer

public Container getContainer()
Получает контейнер, содержащий представление. Это полезно для таких задач, как планирование перерисовки, выяснение шрифта компонента-хоста и т. д. По умолчанию эта реализация перенаправляет запрос на родительское представление.
Возвращает:
контейнер, null если нет

getViewFactory

public ViewFactory getViewFactory()
Получает реализацию ViewFactory, которая подпитывает иерархию представлений. Обычно представления получают это в качестве аргумента при обновлении из модели, когда они, скорее всего, нуждаются в фабрике, но этот метод предназначен для предоставления его в других случаях.
Возвращает:
фабрику, null если нет

getToolTipText

public String getToolTipText(float x, float y, Shape allocation)
Возвращает текст подсказки в указанном месте. Реализация по умолчанию возвращает значение из дочернего представления, определённого переданным местоположением.
Параметры:
x - координата x
y - координата y
allocation - текущее размещение представления.
Возвращает:
текст подсказки в указанном месте
С момента:
1.4
См. также:
  • JTextComponent.getToolTipText(java.awt.event.MouseEvent)

getViewIndex

public int getViewIndex(float x, float y, Shape allocation)
Возвращает индекс дочернего представления, представляющий заданную позицию в представлении. Это итерирует по всем дочерним элементам, возвращая первый с границами, содержащими x, y.
Параметры:
x - координата x
y - координата y
allocation - текущее размещение представления.
Возвращает:
индекс представления, представляющего заданное расположение, или -1, если ни одно представление не представляет эту позицию
С момента:
1.4

updateChildren

protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
Обновляет дочерние представления в ответ на получение уведомления о том, что модель изменилась, и есть запись изменения для элемента, за который это представление отвечает. Эта реализация предполагает, что дочерние представления напрямую отвечают за дочерние элементы элемента, который представляет это представление. ViewFactory используется для создания дочерних представлений для каждого элемента, указанного как добавленный в ElementChange, начиная с индекса, указанного в данном ElementChange. Удаляется количество дочерних представлений, представляющих удалённые элементы.
Параметры:
ec - информация об изменении для элемента, за который отвечает это представление. Это не должно быть null, если этот метод вызывается
e - информация об изменениях из связанной модели
f - фабрика, используемая для создания дочерних представлений
Возвращает:
отображают ли дочерние представления дочерние элементы элемента, за который это представление отвечает. Некоторые представления создают дочерние элементы, которые представляют часть элемента, за который они отвечают, и должны возвращать false. Эта информация используется для определения, следует ли перенаправлять представления в диапазоне добавленных элементов
С момента:
1.3
См. также:
  • insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

forwardUpdate

protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
Перенаправляет заданное DocumentEvent дочерним представлениям, которые должны быть уведомлены об изменении модели. Если были изменения в элементе, за который отвечает это представление, это следует учитывать при перенаправлении (т. е. новые дочерние представления не должны получать уведомления).
Параметры:
ec - изменения в элементе, за который отвечает это представление (может быть null, если изменений не было).
e - информация об изменениях из связанной модели
a - текущее размещение представления
f - фабрика для перестроения, если у представления есть дочерние элементы
С момента:
1.3
См. также:
  • insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

forwardUpdateToView

protected void forwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f)
Пересылает уведомление о DocumentEvent до соответствующего дочернего представления. Это просто отправляет сообщению представлению вызов insertUpdate, removeUpdate или changedUpdate в зависимости от типа события. Этот метод вызывается методом forwardUpdate, чтобы передать событие дочерним представлениям, которые нуждаются в нём.
Parameters:
v - дочернее представление, которому нужно переслать событие
e - информация о изменении из связанного документа
a - текущее выделение представления
f - фабрика, используемая для перестроения, если у представления есть дочерние элементы
Since:
1.3
See Also:
  • forwardUpdate(javax.swing.event.DocumentEvent.ElementChange, javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

updateLayout

protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
Обновляет макет в ответ на получение уведомления об изменении от модели. Это реализуется для вызова preferenceChanged, чтобы запланировать новый макет, если запись о ElementChange не является null.
Parameters:
ec - изменения элемента, за который отвечает это представление (может быть null, если изменений не было)
e - информация об изменении из связанного документа
a - текущее выделение представления
Since:
1.3
See Also:
  • insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

modelToView

@Deprecated public Shape modelToView(int pos, Shape a) throws BadLocationException
Устарело.
Предоставляет отображение из координатного пространства модели документа в координатное пространство представления, которое к нему привязано. Эта реализация устанавливает смещение по умолчанию в Position.Bias.Forward, которое ранее подразумевалось.
Parameters:
pos - позиция для преобразования >= 0
a - выделенная область для отрисовки
Returns:
возвращается ограничивающая рамка заданной позиции
Throws:
BadLocationException - если заданная позиция не представляет допустимого расположения в связанном документе
See Also:
  • viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

viewToModel

@Deprecated public int viewToModel(float x, float y, Shape a)
Устарело.
Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели.
Parameters:
x - координата X >= 0
y - координата Y >= 0
a - выделенная область для отрисовки
Returns:
местоположение в модели, которое наилучшим образом представляет данную точку в представлении >= 0
See Also:
  • modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

© 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/javax/swing/text/View.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API