Класс 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
- См. также:
Краткое описание полей
Поля, объявленные в классе View
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
Поля, объявленные в интерфейсе SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
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 |
Вызывается зоной при её загрузке. |
Методы, объявленные в классе 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
Методы, объявленные в классе CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParent
Методы, объявленные в классе 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)
mzl меньше 1, будет выброшено исключение IllegalArgumentException.- Параметры:
-
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, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/swing/text/ZoneView.html