Spec-Zone.ru › OpenJDK 27

Класс View

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. Это позволяет реализациям родительского View при необходимости кэшировать требования дочерних элементов. Последовательность вызовов выглядит примерно так:

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

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

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

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

  • Во время вызова paint представление получает область от родителя, поэтому оно должно быть готово повторно выполнить компоновку, если выделенная область отличается от той, с которой оно готово работать.
  • Используется та же система координат, что и у содержащего 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
Модификатор и тип Поле Описание
static final int BOTTOM
Константа ориентации блока, задающая его нижнюю сторону.
static final int CENTER
Центральная позиция в области.
static final int EAST
Направление по компасу: восток (справа).
static final int HORIZONTAL
Горизонтальная ориентация.
static final int LEADING
Определяет передний край текста для языков с направлением письма слева направо и справа налево.
static final int LEFT
Константа ориентации блока, задающая его левую сторону.
static final int NEXT
Определяет следующее направление в последовательности.
static final int NORTH
Направление по компасу: север (вверх).
static final int NORTH_EAST
Направление по компасу: северо-восток (вверху справа).
static final int NORTH_WEST
Направление по компасу: северо-запад (вверху слева).
static final int PREVIOUS
Определяет предыдущее направление в последовательности.
static final int RIGHT
Константа ориентации блока, задающая его правую сторону.
static final int SOUTH
Направление по компасу: юг (вниз).
static final int SOUTH_EAST
Направление по компасу: юго-восток (внизу справа).
static final int SOUTH_WEST
Направление по компасу: юго-запад (внизу слева).
static final int TOP
Константа ориентации блока, задающая его верхнюю сторону.
static final int TRAILING
Определяет задний край текста для языков с направлением письма слева направо и справа налево.
static final int VERTICAL
Вертикальная ориентация.
static final int 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, подлежит удалению: этот элемент API будет удален в будущей версии.
Метод финализации устарел и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt либо до истечения заданного промежутка реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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