Класс Вид
- 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 минимальный размер будет меньше или равен предпочтительному размеру, который в свою очередь будет меньше или равен максимальному размеру.
Минимальный набор методов для выкладки:
Метод
setSizeдолжен быть готов к вызову многократно (т. е. он может вызываться даже если размер не изменился). МетодsetSizeобычно вызывается, чтобы убедиться, что выкладка View завершена перед выполнением операции над ней, которая требует обновлённой выкладки. Размер представления всегда должен устанавливаться в значение, находящееся между минимальным и максимальным значениями, определёнными этим представлением. Кроме того, представление всегда должно вызывать методpreferenceChangedв родительском элементе, если оно изменило значения выкладки, и ожидает, что родитель учтёт их. Родительское представление не обязано распознавать изменение, пока не будет отправленpreferenceChanged. Это позволяет реализации родительского представления кэшировать требования дочернего элемента, если это необходимо. Последовательность вызовов примерно следующая:Точная последовательность вызовов зависит от функциональности выкладки родительского представления (если у представления есть дочерние элементы). Представление может собрать предпочтения дочерних элементов перед определением того, что оно даст каждому дочернему элементу, или оно может итеративно обновлять дочерние элементы по одному.
- Отображение части модели.
-
Это делается в методе 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) | Создаёт новый объект |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
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 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) Предоставляет уведомление о том, что что-то было вставлено в документ в местоположении, за которое это представление отвечает. Для уменьшения нагрузки на подклассы, эта функциональность распределяется по следующим вызовам, которые подклассы могут переопределять:
-
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) Возвращает текст подсказки в указанной позиции. По умолчанию возвращает значение из дочернего представления 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