Класс ZoneView
- Все реализуемые интерфейсы:
SwingConstants
public class ZoneView extends BoxView
ZoneView расширяет BoxView, чтобы обеспечить ящик, реализующий зоны для своих дочерних элементов. Зоны — это специальные реализации View (дочерние элементы экземпляра этого класса), которые представляют только часть модели, за которую отвечает экземпляр ZoneView. Зоны не создают дочерние представления до тех пор, пока не будет попытки их отобразить. Представление в форме прямоугольника хорошо подходит для этого, потому что:
- Прямоугольники — часто используемые представления, и наличие прямоугольника, предоставляющего такое поведение, даёт существенную возможность подключить это поведение к иерархии представлений из фабрики представлений.
- Прямоугольники выкладываются в одном направлении, поэтому их легко разделить на зоны надёжным способом.
- Прямоугольники, как правило, имеют простые отношения с моделью (то есть они создают дочерние представления, которые непосредственно отображают дочерние элементы).
- Оценить размер прямоугольников легче, чем некоторых других форм.
По умолчанию поведение контролируется двумя свойствами: maxZoneSize и maxZonesLoaded. Установка maxZoneSize в Integer.MAX_VALUE приведет к созданию только одной зоны. Это фактически превратит представление в реализацию паттерна декоратор. Установка maxZonesLoaded в значение Integer.MAX_VALUE приведет к тому, что зоны никогда не будут выгружаться. Для простоты зоны создаются на границах, представленных дочерними элементами элемента, за который отвечает представление. Зоны могут быть любой реализацией View, но реализация по умолчанию основана на AsyncBoxView, которая эффективно поддерживает довольно большие зоны.
- С тех пор:
- 1.3
- См. также:
Краткое описание полей
Поля, объявленные в классе javax.swing.text.View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, 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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ZoneView |
Создаёт ZoneView. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected View |
createZone |
Создаёт представление для отображения зоны для заданного диапазона в модели (который должен находиться в пределах ответственности данного объекта). |
int |
getMaximumZoneSize() |
Получает текущий максимальный размер зоны. |
int |
getMaxZonesLoaded() |
Получает текущее значение количества зон, разрешённых к загрузке одновременно. |
protected int |
getViewIndexAtPosition |
Возвращает индекс дочернего представления, представляющий заданную позицию в модели. |
void |
insertUpdate |
Уведомляет о том, что в документ был вставлен элемент в место, за которое отвечает данное представление. |
protected boolean |
isZoneLoaded |
Определяет, находится ли зона в загруженном состоянии. |
protected void |
loadChildren |
Загружает все дочерние элементы для инициализации представления. |
void |
removeUpdate |
Уведомляет о том, что элемент был удалён из документа в место, за которое отвечает данное представление. |
void |
setMaximumZoneSize |
Устанавливает желаемый максимальный размер зоны. |
void |
setMaxZonesLoaded |
Устанавливает текущее значение количества зон, разрешённых к загрузке одновременно. |
protected void |
unloadZone |
Выгружает зону (преобразует зону в состояние, экономящее память). |
protected boolean |
updateChildren |
Поведение суперкласса попытается обновить дочерние представления, что в данном случае нежелательно, так как дочерние элементы — это зоны, а не непосредственно затрагиваемые изменениями в связанном элементе. |
protected void |
zoneWasLoaded |
Вызывается зоной при её загрузке. |
Методы, объявленные в классе javax.swing.text.BoxView
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, calculateMinorAxisRequirements, childAllocation, flipEastAndWestAtEnds, forwardUpdate, getAlignment, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layout, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel
Методы, объявленные в классе javax.swing.text.CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParent
Методы, объявленные в классе javax.swing.text.View
append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateLayout, viewToModel
Подробное описание конструкторов
ZoneView
public ZoneView(Element elem, int axis)
- Параметры:
-
elem- элемент, за который отвечает данное представление -
axis- либо View.X_AXIS, либо View.Y_AXIS
Подробное описание методов
getMaximumZoneSize
public int getMaximumZoneSize()
- Возвращает:
- текущий максимальный размер зоны
setMaximumZoneSize
public void setMaximumZoneSize(int size)
- Параметры:
-
size- количество символов, которое зона может представлять, прежде чем пытаться разбить зону на меньшие размеры.
getMaxZonesLoaded
public int getMaxZonesLoaded()
- Возвращает:
- текущее значение количества зон, разрешённых для загрузки одновременно
setMaxZonesLoaded
public void setMaxZonesLoaded(int mzl)
IllegalArgumentException, если mzl меньше 1.- Параметры:
-
mzl- желаемое максимальное количество зон для активной загрузки, должно быть больше 0 - Исключения:
-
IllegalArgumentException- еслиmzlменьше 1
zoneWasLoaded
protected void zoneWasLoaded(View zone)
- Параметры:
-
zone- дочернее представление, которое только что было загружено.
unloadZone
protected void unloadZone(View zone)
- Параметры:
-
zone- дочернее представление, которое требуется установить в незагруженное состояние.
isZoneLoaded
protected boolean isZoneLoaded(View zone)
- Параметры:
-
zone- зона - Возвращает:
- является ли зона в загруженном состоянии.
createZone
protected View createZone(int p0, int p1)
- Параметры:
-
p0- начало желаемой зоны. Должно быть больше или равно getStartOffset() и меньше getEndOffset(). Это значение также должно быть меньше p1. -
p1- конец желаемой зоны. Должно быть больше getStartOffset() и меньше или равно getEndOffset(). Это значение также должно быть больше p0. - Возвращает:
- представление для представления зоны для заданного диапазона в модели
loadChildren
protected void loadChildren(ViewFactory f)
setParent. Эта реализация переопределена, чтобы не загружать дочерние элементы напрямую (так как они создаются зонами). Этот метод создаёт начальный набор зон. Однако зоны фактически не заполняются до тех пор, пока не будет попытки отобразить их или выполнить преобразование координат модель/представление.- Переопределяет:
-
loadChildrenв классеCompositeView - Параметры:
-
f- фабрика представлений - См. также:
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos)
- Переопределяет:
-
getViewIndexAtPositionв классеCompositeView - Параметры:
-
pos- позиция, >= 0 - Возвращает:
- индекс представления, представляющего заданную позицию, или -1, если такое представление отсутствует
updateChildren
protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
- Переопределяет:
-
updateChildrenв классеView - Параметры:
-
ec- информация об изменениях для элемента, за который отвечает это представление. Не должно бытьnullесли вызывается этот метод -
e- информация об изменениях из связанного документа -
f- фабрика для создания дочерних представлений - Возвращает:
- являются ли дочерние представления представителями дочерних элементов элемента, за который отвечает это представление. Некоторые представления создают дочерние элементы, которые представляют часть элемента, за который они отвечают, и должны возвращать false. Эта информация используется для определения того, нужно ли передавать представления в диапазоне добавленных элементов или нет
- См. также:
insertUpdate
public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
- Переопределяет:
-
insertUpdateв классеView - Параметры:
-
changes- информация об изменениях из связанного документа -
a- текущее распределение представления -
f- фабрика для повторной сборки, если у представления есть дочерние элементы - См. также:
removeUpdate
public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
- Переопределяет:
-
removeUpdateв классеView - Параметры:
-
changes- информация об изменениях из связанного документа -
a- текущее распределение представления -
f- фабрика для повторной сборки, если у представления есть дочерние элементы - См. также:
© 1993, 2023, 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/21/docs/api/java.desktop/javax/swing/text/ZoneView.html