Класс Вид
- 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, чтобы поддерживать своё местоположение в модели (то есть представлять фрагмент элемента). Это обычно результат форматирования, когда виды разбиваются на части. Удобство существенной связи с элементом упрощает создание фабрик для создания видов и отслеживание фрагментов вида при изменении модели, когда вид должен отразить изменения в модели. Простые виды, следовательно, напрямую представляют элемент, а сложные — нет.
Вид отвечает за следующие действия:
- Участие в компоновке.
-
Вид имеет метод
setSize, который похож наdoLayoutиsetSizeвComponentв совокупности. Вид имеет методpreferenceChanged, который похож наinvalidateвComponentза исключением того, что можно сделать недействительной только одну ось, и определяется дочерний элемент, запрашивающий изменение.Вид выражает желаемый размер в терминах трёх значений: минимального, предпочтительного и максимального размера. Компоновка в виде может выполняться независимо по каждой оси. Для корректной реализации View минимальный размер будет <= предпочтительного, который в свою очередь будет <= максимального размера.
Минимальный набор методов для компоновки:
Метод
setSizeдолжен быть готов к вызову несколько раз (то есть он может вызываться даже если размер не изменился). МетодsetSizeобычно вызывается, чтобы убедиться, что компоновка View завершена перед выполнением операции с ним, требующей актуальной компоновки. Размер вида всегда должен устанавливаться в значение, находящееся в пределах минимального и максимального размера, указанных этим видом. Кроме того, вид всегда должен вызывать методpreferenceChangedв родительском элементе, если он изменил значения для компоновки, которые он хотел бы видеть учтёнными. Родительский View не обязан распознать изменение до тех пор, покаpreferenceChangedне будет отправлено. Это позволяет родительским View-реализациям кэшировать требования дочерних элементов при необходимости. Последовательность вызовов выглядит примерно так:Точная последовательность вызовов зависит от функциональности компоновки родительского вида (если у вида есть дочерние элементы). Вид может собрать предпочтения дочерних элементов перед тем, как определить, что он даст каждому из них, или может итеративно обновлять дочерние элементы по одному.
- Отображение части модели.
-
Это делается в методе paint, который очень похож на метод paint компонента. Ожидается, что виды могут потенциально заполнять довольно большую иерархию. Метод
Viewимеет следующие характеристики для отрисовки:- Вид получает своё размещение от родителя во время отрисовки, поэтому он должен быть готов повторно выполнить компоновку, если выделенная область отличается от ожидаемой.
- Система координат совпадает с системой координат размещающего
Component(то естьComponentвозвращаемого методомgetContainer). Это означает, что дочерний вид существует в той же системе координат, что и родительский вид, если родитель явно не изменил систему координат. Чтобы запланировать перерисовку, вид может вызвать repaint в размещающемComponent. - По умолчанию дети не обрезаются. Более эффективно разрешать обрезку вида только в случае необходимости.
- Объект
Graphicsне инициализируется каким-либо образом. Вид должен установить все необходимые настройки. - Сам по себе
Viewявляется прозрачным. Хотя вид может отрисоваться в своём полном размещении, обычно этого не происходит. Отрисовка выполняется путём обхода дерева реализаций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) Создаёт новый объект |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
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) Пересылает заданное |
protected void |
forwardUpdateToView(View v,
DocumentEvent e,
Shape a,
ViewFactory f) Пересылает |
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() Получает |
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() Получает реализацию |
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 p0,
Position.Bias b0,
int p1,
Position.Bias b1,
Shape a) Предоставляет отображение, для данного региона, от пространства координат модели документа к пространству координат представления. |
Shape |
modelToView(int pos,
Shape a) Устаревшее. |
abstract Shape |
modelToView(int pos,
Shape a,
Position.Bias b) Предоставляет отображение, для данного символа, от пространства координат модели документа к пространству координат представления. |
abstract void |
paint(Graphics g,
Shape allocation) Отображает используя заданную поверхность отрисовки и область на этой поверхности. |
void |
preferenceChanged(View child,
boolean width,
boolean height) Дочерние виды могут вызвать это у родителя, чтобы указать, что предпочтение изменилось и должно быть переоценено для макета. |
void |
remove(int i) Удаляет один из детей в заданной позиции. |
void |
removeAll() Удаляет всех детей. |
void |
removeUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Предоставляет уведомление о том, что что-то было удалено из документа в месте, за которое отвечает этот вид. |
void |
replace(int offset,
int length,
View[] views) Заменяет дочерние представления. |
void |
setParent(View parent) Устанавливает родительский вид для этого вида. |
void |
setSize(float width,
float height) Устанавливает размер представления. |
protected boolean |
updateChildren(DocumentEvent.ElementChange ec,
DocumentEvent e,
ViewFactory f) Обновляет дочерние виды в ответ на получение уведомления о том, что модель изменилась, и есть запись изменений для элемента, за который отвечает этот вид. |
protected void |
updateLayout(DocumentEvent.ElementChange ec,
DocumentEvent e,
Shape a) Обновляет макет в ответ на получение уведомления об изменении от модели. |
int |
viewToModel(float x,
float y,
Shape a) Устаревшее. |
abstract int |
viewToModel(float x,
float y,
Shape a,
Position.Bias[] biasReturn) Предоставляет отображение от пространства координат представления к логическому пространству координат модели. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
BadBreakWeight
public static final int BadBreakWeight
Вес, указывающий, что вид является плохим местом для разрыва с точки зрения форматирования. Это значение указывает, что не следует пытаться разбить вид на фрагменты, так как вид не предназначен для фрагментации.
- См. также:
-
getBreakWeight(int, float, float),GoodBreakWeight,ExcellentBreakWeight,ForcedBreakWeight, Значения константного поля
GoodBreakWeight
public static final int GoodBreakWeight
Вес, указывающий, что вид поддерживает разрыв, но, вероятно, существуют лучшие возможности.
- См. также:
-
getBreakWeight(int, float, float),BadBreakWeight,ExcellentBreakWeight,ForcedBreakWeight, Значения константного поля
ExcellentBreakWeight
public static final int ExcellentBreakWeight
Вес, указывающий, что вид поддерживает разрыв, и это очень привлекательное место для разрыва.
- См. также:
-
getBreakWeight(int, float, float),BadBreakWeight,GoodBreakWeight,ForcedBreakWeight, Значения константного поля
ForcedBreakWeight
public static final int ForcedBreakWeight
Вес, указывающий, что вид поддерживает разрыв и должен быть разорван для правильного представления при размещении в виде, который форматирует своих дочерних элементов, разрывая их.
- См. также:
-
getBreakWeight(int, float, float),BadBreakWeight,GoodBreakWeight,ExcellentBreakWeight, Значения константного поля
X_AXIS
public static final int X_AXIS
Ось для операций форматирования/разрыва.
- См. также:
- Значения константного поля
Y_AXIS
public static final int Y_AXIS
Ось для операций форматирования/разрыва.
- См. также:
- Значения константного поля
Конструкторы
View
public View(Element elem)
Создает новый объект View.
- Параметры:
-
elem-Elementдля представления
Методы
getParent
public View getParent()
Возвращает родительский элемент представления.
- Возвращает:
- родительский элемент или
null, если он отсутствует
isVisible
public boolean isVisible()
Возвращает значение булевого типа, указывающее, отображается ли вид или нет. По умолчанию все виды отображаются.
- Возвращает:
- всегда возвращает true
getPreferredSpan
public abstract float getPreferredSpan(int axis)
Определяет предпочтительный размер для этого представления вдоль оси.
- Параметры:
-
axis- может быть либоView.X_AXIS, либоView.Y_AXIS - Возвращает:
- размер, который представление хотело бы отображать. Как правило, представление получает указание отображаться в возвращенном размере, хотя это не гарантируется. Родительский элемент может выбрать изменение размера или разбиение представления
- См. также:
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.
- С:
- 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 - Возвращает:
- индекс представления, представляющего заданную позицию, или -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- позиция для преобразования -
a- выделенная область для отрисовки -
direction- направление от текущей позиции, которое можно рассматривать как стрелочные клавиши на клавиатуре. Будет иметь одно из следующих значений:- SwingConstants.WEST
- SwingConstants.EAST
- SwingConstants.NORTH
- SwingConstants.SOUTH
- Возвращает:
- местоположение в модели, которое наилучшим образом представляет следующую позицию визуального расположения
- Исключение:
-
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- выделенная область для отрисовки - Возвращает:
- местоположение в модели, которое наилучшим образом представляет данную точку в представлении >= 0. Аргумент
biasReturnбудет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или к предыдущему символу в модели.
insertUpdate
public void insertUpdate(DocumentEvent e,
Shape a,
ViewFactory f) Сообщает о вставке в документ в место, за которое отвечает данное представление. Для уменьшения нагрузки на подклассы, эта функциональность распределена по следующим вызовам, которые могут быть переопределены подклассами:
-
updateChildrenвызывается, если произошли изменения в элементе, за который отвечает это представление. Если это представление имеет дочерние представления, которые представляют дочерние элементы, то этот метод должен сделать всё необходимое, чтобы дочерние представления правильно отображали модель. -
forwardUpdateвызывается для передачи DocumentEvent соответствующим дочерним представлениям. -
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) Сообщает об удалении из документа в месте, за которое отвечает данное представление. Для уменьшения нагрузки на подклассы, эта функциональность распределена по следующим вызовам, которые могут быть переопределены подклассами:
-
updateChildrenвызывается, если произошли изменения в элементе, за который отвечает это представление. Если это представление имеет дочерние представления, которые представляют дочерние элементы, то этот метод должен сделать всё необходимое, чтобы дочерние представления правильно отображали модель. -
forwardUpdateвызывается для передачи DocumentEvent соответствующим дочерним представлениям. -
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) Сообщает от документа о изменении атрибутов в место, за которое отвечает это представление. Для уменьшения нагрузки на подклассы, эта функциональность распределена по следующим вызовам, которые могут быть переопределены подклассами:
-
updateChildrenвызывается, если произошли изменения в элементе, за который отвечает это представление. Если это представление имеет дочерние представления, которые представляют дочерние элементы, то этот метод должен сделать всё необходимое, чтобы дочерние представления правильно отображали модель. -
forwardUpdateвызывается для передачи DocumentEvent соответствующим дочерним представлениям. -
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) Возвращает текст всплывающей подсказки в указанном месте. По умолчанию реализация возвращает значение из дочернего представления, определенного с помощью переданного местоположения.
- С момента:
- 1.4
- См. также:
JTextComponent.getToolTipText(java.awt.event.MouseEvent)
getViewIndex
public int getViewIndex(float x,
float y,
Shape allocation) Возвращает индекс дочернего представления, представляющего данную позицию в представлении. Это выполняет итерацию по всем дочерним элементам, возвращая первый с границами, содержащими x, y.
- Параметры:
-
x- координата x -
y- координата y -
allocation- текущее выделение представления. - Возвращает:
- индекс представления, представляющего данное расположение, или -1, если такое расположение не представлено ни одним представлением
- С момента:
- 1.4
updateChildren
protected boolean updateChildren(DocumentEvent.ElementChange ec,
DocumentEvent e,
ViewFactory f) Обновляет дочерние представления в ответ на получение уведомления о том, что модель изменилась, и есть запись об изменениях для элемента, за который отвечает это представление. Это реализовано так, чтобы предположить, что дочерние представления напрямую отвечают за дочерние элементы элемента, который представляет это представление. ViewFactory используется для создания дочерних представлений для каждого указанного добавленного элемента в ElementChange, начиная с индекса, указанного в данном ElementChange. Удаляется количество дочерних представлений, представляющих удаленные элементы, указанные.
- Параметры:
-
ec- информация об изменениях для элемента, за который отвечает это представление. Это не должно бытьnullесли этот метод вызывается -
e- информация об изменениях из связанного документа -
f- фабрика для создания дочерних представлений - Возвращает:
- являются ли дочерние представления ответственными за дочерние элементы элемента, за который это представление отвечает. Некоторые представления создают дочерние элементы, которые представляют часть элемента, за который они отвечают, и должны возвращать false. Эта информация используется для определения того, следует ли пересылать представления в диапазоне добавленных элементов или нет
- С момента:
- 1.3
- См. также:
-
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory),removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory),changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
forwardUpdate
protected void forwardUpdate(DocumentEvent.ElementChange ec,
DocumentEvent e,
Shape a,
ViewFactory f) Пересылает данный DocumentEvent дочерним представлениям, которым необходимо уведомлять об изменении модели. Если были изменения в элементе, за который отвечает это представление, это следует учитывать при пересылке (т.е. новые дочерние представления не должны получать уведомления).
- Параметры:
-
ec- изменения в элементе, за который отвечает этот вид (может бытьnull, если изменений не было). -
e- информация об изменениях из связанного документа -
a- текущее распределение вида -
f- фабрика, используемая для перестроения, если у вида есть дочерние элементы - С момента:
- 1.3
- См. также:
-
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory),removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory),changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
forwardUpdateToView
protected void forwardUpdateToView(View v,
DocumentEvent e,
Shape a,
ViewFactory f) Пересылает DocumentEvent дочернему представлению. Просто отправляет сообщению представление с вызовом insertUpdate, removeUpdate, или changedUpdate, в зависимости от типа события. Вызывается методом forwardUpdate для пересылки события дочерним элементам, которые его нуждаются.
- Параметры:
-
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.