Класс Вид

Все реализованные интерфейсы:
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.

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

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

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

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

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

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

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

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

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

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

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

Реагирование на изменения в модели.

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

Поля

Модификатор и тип Поле Описание
static int BadBreakWeight

Вес, указывающий, что представление является плохим местом разрыва для целей форматирования.

static int ExcellentBreakWeight

Вес, указывающий, что представление поддерживает разрыв, и это очень привлекательное место для разрыва.

static int ForcedBreakWeight

Вес, указывающий, что представление поддерживает разрыв и должно быть разорвано, чтобы быть правильно представленным, когда оно размещено в представлении, форматирующем свои дочерние элементы путём разбиения их.

static int GoodBreakWeight

Вес, указывающий, что представление поддерживает разрыв, но, вероятно, существуют и лучшие варианты.

static int X_AXIS

Ось для операций форматирования/разрыва.

static 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

public static final int X_AXIS

Ось для операций форматирования/разбиения.

См. также:
Значения постоянных полей

ОСЬ_Y

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
Возвращает:
размах, который представление хотело бы отобразить. Обычно представлению говорят отображаться в возвращаемом размахе, хотя никакой гарантии нет. Родитель может выбрать изменение размера или разбиение представления
См. также:
getPreferredSpan(int)

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
См. также:
getViewCount()

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, javax.swing.text.View[])

append

public void append(View v)

Добавляет одно дочернее представление. Это удобный вызов для replace.

Параметры:
v - представление
С:
1.3
См. также:
replace(int, int, javax.swing.text.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, 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 вызывается, чтобы дать представлению возможность либо исправить его макет, перепланировать макет, либо ничего не делать.

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

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

Параметры:
e - информация о изменениях из связанного документа
a - текущее выделение представления
f - фабрика для использования для перестроения, если у представления есть дочерние элементы
См. также:
changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

getDocument

public Document getDocument()

Извлекает модель, связанную с представлением.

Возвращает:
модель представления, null если нет
См. также:
getDocument()

getStartOffset

public int getStartOffset()

Извлекает часть модели, за которую это представление отвечает.

Возвращает:
начальное смещение в модели >= 0
См. также:
getStartOffset()

getEndOffset

public int getEndOffset()

Извлекает часть модели, за которую это представление отвечает.

Возвращает:
конечное смещение в модели >= 0
См. также:
getEndOffset()

getElement

public Element getElement()

Извлекает структурную часть объекта, к которой это представление сопоставлено. Представление может не отвечать за всю часть элемента.

Возвращает:
объект
См. также:
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)

Возвращает текст подсказки в указанной позиции. По умолчанию возвращает значение из дочернего представления View, идентифицированного переданными координатами.

Параметры:
x - координата x
y - координата y
allocation - текущее распределение View.
Возвращает:
текст подсказки в указанной позиции
С:
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 - текущее распределение View.
Возвращает:
индекс представления, представляющего заданную позицию, или -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 для пересылки события дочерним элементам, которые нуждаются в этом.

Параметры:
v - дочернее представление, которому нужно переслать событие
e - информация о изменении от связанной модели
a - текущее распределение представления
f - фабрика для перестроения, если у представления есть дочерние элементы
С:
1.3
См. также:
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.

Параметры:
ec - изменения в элементе, за который это представление отвечает (может быть null если изменений не было)
e - информация о изменении от связанной модели
a - текущее распределение представления
С:
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)

modelToView

@Deprecated
public Shape modelToView(int pos,
                         Shape a)
                  throws BadLocationException
Устарело.

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

Параметры:
pos - позиция для преобразования >= 0
a - выделенная область для отрисовки
Возвращает:
возвращается прямоугольник, охватывающий заданную позицию
Исключения:
BadLocationException - если заданная позиция не представляет действительное местоположение в связанном документе
См. также:
modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

viewToModel

@Deprecated
public int viewToModel(float x,
                       float y,
                       Shape a)
Устаревшее.

Обеспечивает отображение координатного пространства отображения в логическое координатное пространство модели.

Параметры:
x - координата X >= 0
y - координата Y >= 0
a - выделенная область для отрисовки
Возвращает:
местоположение в модели, наиболее точно представляющее заданную точку в отображении >= 0
См. также:
viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/text/View.html

Spec-Zone .ru
спецификации, руководства, описания, API