Spec-Zone.ru › OpenJDK 25

Представление класса

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

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

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

Представление выполняет следующие обязанности:

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

У представления есть метод 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
Ось для операций форматирования/разбиения.

Поля, объявленные в интерфейсе 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)
Сопоставляет координаты из системы координат представления с логической системой координат модели.

Методы, объявленные в классе 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

insert

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

append

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

replace

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, Shape, 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, Shape, 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 вызывается, чтобы дать представлению возможность исправить компоновку, запланировать ее повторное выполнение или ничего не делать.
Параметры:
e — сведения об изменении из связанного документа
a — текущая выделенная область представления
f — фабрика для перестроения, если у представления есть дочерние элементы
См. также:
  • removeUpdate(DocumentEvent, Shape, ViewFactory)
  • changedUpdate(DocumentEvent, Shape, ViewFactory)

removeUpdate

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

changedUpdate

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

getDocument

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

getStartOffset

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

getEndOffset

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

getElement

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

getGraphics

public Graphics getGraphics()
Получает Graphics для отображения. Его можно использовать для определения характеристик шрифта; для печатного представления он будет отличаться от объекта для представления-компонента.
Возвращает:
объект Graphics для отображения
Начиная с версии:
1.3

getAttributes

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

breakView

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

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

Параметры:
axis — может принимать значение View.X_AXIS или View.Y_AXIS
offset — положение в модели документа, которое занимал бы разбитый фрагмент >= 0. Это начальное смещение возвращаемого фрагмента
pos — положение вдоль оси, которое занимало бы разбитое представление >= 0. Это может быть полезно, например, для вычисления позиций табуляции
len — задаёт расстояние вдоль оси, в котором желателен возможный разрыв >= 0
Возвращает:
фрагмент представления, соответствующий заданному диапазону, если представление можно разбить. Если представление не поддерживает разбиение, возвращается само представление.
См. также:
  • 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(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(DocumentEvent, Shape, ViewFactory)
  • removeUpdate(DocumentEvent, Shape, ViewFactory)
  • changedUpdate(DocumentEvent, Shape, ViewFactory)

forwardUpdate

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

forwardUpdateToView

protected void forwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f)
Пересылает DocumentEvent указанному дочернему представлению. Это просто отправляет представлению сообщение посредством вызова insertUpdate, removeUpdate или changedUpdate в зависимости от типа события. Метод forwardUpdate вызывает его, чтобы переслать событие дочерним представлениям, которым оно необходимо.
Параметры:
v — дочернее представление, которому нужно переслать событие
e — сведения об изменении из связанного документа
a — текущая область размещения представления
f — фабрика для повторного создания дочерних представлений, если они есть
Начиная с версии:
1.3
См. также:
  • forwardUpdate(DocumentEvent.ElementChange, DocumentEvent, Shape, ViewFactory)

updateLayout

protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
Обновляет компоновку при получении уведомления об изменении модели. Реализация вызывает preferenceChanged, чтобы запланировать новую компоновку, если запись ElementChange не равна null.
Параметры:
ec — изменения элемента, за который отвечает это представление (может быть null, если изменений не было)
e — сведения об изменении из связанного документа
a — текущая область размещения представления
Начиная с версии:
1.3
См. также:
  • insertUpdate(DocumentEvent, Shape, ViewFactory)
  • removeUpdate(DocumentEvent, Shape, ViewFactory)
  • changedUpdate(DocumentEvent, Shape, ViewFactory)

modelToView

@Deprecated public Shape modelToView(int pos, Shape a) throws BadLocationException
Устарел.
Обеспечивает преобразование координат из пространства модели документа в соответствующее ему координатное пространство представления. Реализация по умолчанию использует смещение Position.Bias.Forward, которое подразумевалось ранее.
Параметры:
pos — позиция для преобразования >= 0
a — выделенная область для отрисовки
Возвращает:
ограничивающий прямоугольник заданной позиции
Вызывает исключение:
BadLocationException — если заданная позиция не является допустимым местом в связанном документе
См. также:
  • viewToModel(float, float, Shape, Position.Bias[])

viewToModel

@Deprecated public int viewToModel(float x, float y, Shape a)
Устарел.
Обеспечивает преобразование координат из пространства представления в логическое координатное пространство модели.
Параметры:
x — координата X >= 0
y — координата Y >= 0
a — выделенная область для отрисовки
Возвращает:
место в модели, которое лучше всего соответствует заданной точке представления >= 0
См. также:
  • modelToView(int, Shape, Position.Bias)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/text/View.html

Spec-Zone.ru

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