Класс AsyncBoxView
- Все реализуемые интерфейсы:
SwingConstants
public class AsyncBoxView extends View
Во время обращения к дочернему представлению на связанном документе устанавливается блокировка на чтение, чтобы модель оставалась неизменной при обращении к ней.
- Начиная с:
- 1.3
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
class |
AsyncBoxView.ChildLocator |
Класс для управления фактическим расположением дочерних представлений в локализованной области во время внесения изменений вокруг этой области. |
class |
AsyncBoxView.ChildState |
Запись, представляющая состояние компоновки дочернего представления. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected AsyncBoxView.ChildLocator |
locator |
Объект, управляющий смещениями дочерних элементов. |
Поля, объявленные в классе 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
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
AsyncBoxView |
Создает представление-контейнер, выполняющее асинхронную компоновку. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected AsyncBoxView.ChildState |
createChildState |
Новые записи ChildState создаются с помощью этого метода, чтобы подклассы могли расширять записи ChildState и добавлять в них данные или функциональность. |
protected void |
flushRequirementChanges() |
Передает изменения предпочтений родительскому представлению. |
float |
getBottomInset() |
Возвращает нижнюю часть отступа вокруг представления. |
Shape |
getChildAllocation |
Получает область размещения для указанного дочернего представления. |
protected AsyncBoxView.ChildState |
getChildState |
Получает объект, представляющий состояние компоновки дочернего элемента с указанным индексом. |
protected boolean |
getEstimatedMajorSpan() |
Выполнена ли на данный момент оценка основного размера? |
protected float |
getInsetSpan |
Получает размер, занимаемый вставками вдоль заданной оси. |
protected LayoutQueue |
getLayoutQueue() |
Получает очередь, используемую для компоновки. |
float |
getLeftInset() |
Возвращает левую часть отступа вокруг представления. |
int |
getMajorAxis() |
Получает основную ось (ось, вдоль которой расположены дочерние элементы). |
float |
getMaximumSpan |
Определяет максимальный размер этого представления вдоль заданной оси. |
float |
getMinimumSpan |
Определяет минимальный размер этого представления вдоль заданной оси. |
int |
getMinorAxis() |
Получает второстепенную ось (ось, перпендикулярную оси размещения). |
int |
getNextVisualPositionFrom |
Позволяет определить следующее визуально представленное местоположение в модели, в котором можно разместить каретку. |
float |
getPreferredSpan |
Определяет предпочтительный размер этого представления вдоль заданной оси. |
float |
getRightInset() |
Возвращает правую часть отступа вокруг представления. |
float |
getTopInset() |
Возвращает верхнюю часть отступа вокруг представления. |
View |
getView |
Возвращает n-е дочернее представление. |
int |
getViewCount() |
Возвращает количество представлений в этом представлении. |
int |
getViewIndex |
Возвращает индекс дочернего представления, соответствующий указанной позиции в модели. |
protected int |
getViewIndexAtPosition |
Получает индекс дочернего представления, соответствующий указанной позиции в модели. |
protected void |
loadChildren |
Загружает все дочерние представления для инициализации представления. |
protected void |
majorRequirementChange |
Требования вдоль основной оси изменились. |
protected void |
minorRequirementChange |
Требования вдоль второстепенной оси изменились. |
Shape |
modelToView |
Преобразует координаты пространства модели документа в координаты пространства соответствующего ей представления. |
void |
paint |
Отображает представление, используя заданную область размещения и поверхность отрисовки. |
void |
preferenceChanged |
Дочерние представления могут вызвать этот метод у родительского представления, чтобы сообщить об изменении предпочтения и необходимости повторно учесть его при компоновке. |
void |
replace |
Вызывает метод суперкласса для обновления дочерних представлений и обновляет записи состояния дочерних элементов. |
void |
setBottomInset |
Задает нижнюю часть отступа вокруг представления. |
protected void |
setEstimatedMajorSpan |
Задает свойство estimatedMajorSpan, определяющее, следует ли считать основной размер оценочным. |
void |
setLeftInset |
Задает левую часть отступа вокруг представления. |
void |
setParent |
Задает родительское представление. |
void |
setRightInset |
Задает правую часть отступа вокруг представления. |
void |
setSize |
Задает размер представления. |
void |
setTopInset |
Задает верхнюю часть отступа вокруг представления. |
protected void |
updateLayout |
Обновляет компоновку в ответ на уведомление об изменении модели. |
int |
viewToModel |
Преобразует координаты пространства представления в логические координаты пространства модели. |
Методы, объявленные в классе View
append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAlignment, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getResizeWeight, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, remove, removeAll, removeUpdate, updateChildren, viewToModel
Подробное описание полей
locator
protected AsyncBoxView.ChildLocator locator
Подробное описание конструкторов
AsyncBoxView
public AsyncBoxView(Element elem, int axis)
- Параметры:
-
elem— элемент модели для отображения -
axis— ось, вдоль которой выполняется размещение. Может принимать значение X_AXIS или Y_AXIS.
Подробное описание методов
getMajorAxis
public int getMajorAxis()
- Возвращает:
- основную ось
getMinorAxis
public int getMinorAxis()
- Возвращает:
- второстепенную ось
getTopInset
public float getTopInset()
- Возвращает:
- верхнюю часть внешнего отступа вокруг представления
setTopInset
public void setTopInset(float i)
- Параметры:
-
i— значение отступа
getBottomInset
public float getBottomInset()
- Возвращает:
- нижнюю часть внешнего отступа вокруг представления
setBottomInset
public void setBottomInset(float i)
- Параметры:
-
i— значение отступа
getLeftInset
public float getLeftInset()
- Возвращает:
- левую часть внешнего отступа вокруг представления
setLeftInset
public void setLeftInset(float i)
- Параметры:
-
i— значение отступа
getRightInset
public float getRightInset()
- Возвращает:
- правую часть внешнего отступа вокруг представления
setRightInset
public void setRightInset(float i)
- Параметры:
-
i— значение отступа
getInsetSpan
protected float getInsetSpan(int axis)
- Параметры:
-
axis— ось, вдоль которой требуется определить суммарные отступы: X_AXIS или Y_AXIS. - Возвращает:
- размер области вдоль оси, занимаемой отступами
- Начиная с версии:
- 1.4
setEstimatedMajorSpan
protected void setEstimatedMajorSpan(boolean isEstimated)
- Параметры:
-
isEstimated— новое значение свойства estimatedMajorSpan - Начиная с версии:
- 1.4
getEstimatedMajorSpan
protected boolean getEstimatedMajorSpan()
- Возвращает:
- значение true, если текущий размер по основной оси является приблизительным
- Начиная с версии:
- 1.4
getChildState
protected AsyncBoxView.ChildState getChildState(int index)
- Параметры:
-
index— индекс дочернего элемента. Должен иметь значение >= 0 и < getViewCount(). - Возвращает:
- объект, представляющий состояние размещения дочернего элемента с указанным индексом
getLayoutQueue
protected LayoutQueue getLayoutQueue()
- Возвращает:
- очередь, используемую для размещения
createChildState
protected AsyncBoxView.ChildState createChildState(View v)
- Параметры:
-
v— представление - Возвращает:
- новое состояние дочернего элемента
majorRequirementChange
protected void majorRequirementChange(AsyncBoxView.ChildState cs, float delta)
Реализация помечает основную ось как измененную, чтобы при следующей проверке необходимости передать требования родительскому представлению учитывалась эта ось. Если размер вдоль основной оси не является приблизительным, он обновляется на указанную величину изменения, отражая инкрементальное изменение. Если размер по основной оси является приблизительным, величина изменения игнорируется.
- Параметры:
-
cs— состояние дочернего элемента -
delta— величина изменения
minorRequirementChange
protected void minorRequirementChange(AsyncBoxView.ChildState cs)
- Параметры:
-
cs— состояние дочернего элемента
flushRequirementChanges
protected void flushRequirementChanges()
replace
public void replace(int offset, int length, View[] views)
loadChildren
protected void loadChildren(ViewFactory f)
setParent. Подклассы могут переопределить его, чтобы инициализировать дочерние представления другим способом. Реализация по умолчанию создает дочернее представление для каждого дочернего элемента. Обычно во время изменения дочерних элементов документ блокируется для записи, что обеспечивает безопасность потоков отображения и размещения. Исключение составляет инициализация представления для существующего элемента (с помощью этого метода): в этом случае для исключения вызова preferenceChanged во время инициализации используется синхронизация.
- Параметры:
-
f— фабрика представлений - См. также:
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos, Position.Bias b)
- Параметры:
-
pos— позиция >= 0 -
b— смещение позиции - Возвращает:
- индекс представления, соответствующего указанной позиции, или -1, если ни одно представление ей не соответствует
updateLayout
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
- Переопределяет:
-
updateLayoutв классеView - Параметры:
-
ec— изменения элемента, за который отвечает это представление (может быть null, если изменений не было). -
e— сведения об изменении связанного документа -
a— текущая область, выделенная для представления - См. также:
setParent
public void setParent(View parent)
loadChildren, если у этого представления еще нет дочерних элементов. Дочерние элементы не следует загружать в конструкторе, поскольку установка родителя может привести к тому, что они начнут искать родительские элементы в иерархии (например, чтобы получить содержащий их Container). Если у представления есть дочерние элементы (то есть оно перемещается из одной части иерархии представлений в другую), метод loadChildren вызван не будет.preferenceChanged
public void preferenceChanged(View child, boolean width, boolean height)
- Переопределяет:
-
preferenceChangedв классеView - Параметры:
-
child— дочернее представление -
width— true, если изменилось предпочтение по ширине -
height— true, если изменилось предпочтение по высоте - См. также:
setSize
public void setSize(float width, float height)
Поскольку основная ось обновляется асинхронно и ее размер должен равняться сумме размеров размещенных дочерних элементов, вызов для основной оси игнорируется. Второстепенная ось является гибкой, поэтому при изменении ее размера в очередь помещается задача на изменение размеров дочерних элементов.
paint
public void paint(Graphics g, Shape alloc)
Реализация проверяет, актуальна ли область, которую требуется отобразить (то есть область без обрезки). Если она актуальна, дочерние элементы отображаются. В противном случае задача построения нужной области помещается в очередь размещения с высоким приоритетом. Это позволяет потоку обработки событий продолжать работу: он выполняет отрисовку, если данные готовы, а если нет — откладывает ее на более позднее время (поскольку запросы на отрисовку можно перенести).
getPreferredSpan
public float getPreferredSpan(int axis)
- Определено в:
-
getPreferredSpanв классеView - Параметры:
-
axis— может иметь значение View.X_AXIS или View.Y_AXIS - Возвращает:
- размер области, в которой предпочтительно отображать представление >= 0. Обычно представлению выделяется область возвращенного размера, однако это не гарантируется. Родительское представление может изменить размер или разбить это представление.
- Вызывает исключение:
-
IllegalArgumentException— если тип оси недопустим
getMinimumSpan
public float getMinimumSpan(int axis)
- Переопределяет:
-
getMinimumSpanв классеView - Параметры:
-
axis— может иметь значение View.X_AXIS или View.Y_AXIS - Возвращает:
- размер области, в которой предпочтительно отображать представление >= 0. Обычно представлению выделяется область возвращенного размера, однако это не гарантируется. Родительское представление может изменить размер или разбить это представление.
- Вызывает исключение:
-
IllegalArgumentException— если тип оси недопустим - См. также:
getMaximumSpan
public float getMaximumSpan(int axis)
- Переопределяет:
-
getMaximumSpanв классеView - Параметры:
-
axis— может иметь значение View.X_AXIS или View.Y_AXIS - Возвращает:
- размер области, в которой предпочтительно отображать представление >= 0. Обычно представлению выделяется область возвращенного размера, однако это не гарантируется. Родительское представление может изменить размер или разбить это представление.
- Вызывает исключение:
-
IllegalArgumentException— если тип оси недопустим - См. также:
getViewCount
public int getViewCount()
- Переопределяет:
-
getViewCountв классеView - Возвращает:
- количество представлений >= 0
- См. также:
getView
getChildAllocation
public Shape getChildAllocation(int index, Shape a)
- Переопределяет:
-
getChildAllocationв классеView - Параметры:
-
index— индекс дочернего элемента: >= 0 && < getViewCount() -
a— область, выделенная этому представлению. - Возвращает:
- область, выделенную дочернему элементу
getViewIndex
public int getViewIndex(int pos, Position.Bias b)
- Переопределяет:
-
getViewIndexв классеView - Параметры:
-
pos— позиция >= 0 -
b— смещение - Возвращает:
- индекс представления, соответствующего указанной позиции, или -1, если ни одно представление ей не соответствует
- Начиная с версии:
- 1.3
modelToView
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
- Определено в:
-
modelToViewв классеView - Параметры:
-
pos— преобразуемая позиция >= 0 -
a— область, выделенная для отрисовки -
b— смещение в сторону предыдущего или следующего символа, представленного этим смещением, если позиция находится на границе двух представлений. - Возвращает:
- ограничивающую рамку указанной позиции
- Вызывает исключение:
-
BadLocationException— если указанная позиция не соответствует допустимому местоположению в связанном документе -
IllegalArgumentException— если аргумент смещения недопустим - См. также:
viewToModel
public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Предполагается, что этот метод вызывается потоком графического интерфейса при удержании блокировки чтения связанной модели. Реализация находит дочернее представление и определяет выделенную ему область, используя блокировку объекта ChildLocator, а затем вызывает viewToModel дочернего представления, используя блокировку объекта ChildState, чтобы избежать взаимодействия с потоком размещения.
- Определено в:
-
viewToModelв классеView - Параметры:
-
x— координата X >= 0 -
y— координата Y >= 0 -
a— область, выделенная для отрисовки -
biasReturn— возвращаемое смещение - Возвращает:
- позицию модели, наилучшим образом соответствующую указанной точке представления >= 0. Аргумент biasReturn будет заполнен, чтобы указать, ближе ли заданная точка к следующему или предыдущему символу модели.
getNextVisualPositionFrom
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
BadLocationException.- Переопределяет:
-
getNextVisualPositionFromв классеView - Параметры:
-
pos— преобразуемая позиция -
b— смещение -
a— область, выделенная для отрисовки -
direction— направление от текущей позиции, соответствующее клавишам со стрелками на клавиатуре; может принимать одно из следующих значений:SwingConstants.WESTSwingConstants.EASTSwingConstants.NORTHSwingConstants.SOUTH
-
biasRet— массив, содержащий проверенное смещение - Возвращает:
- местоположение в модели, наилучшим образом соответствующее следующей визуальной позиции
- Вызывает исключение:
-
BadLocationException— если указанная позиция недопустима для документа -
IllegalArgumentException— еслиdirectionнедопустим
© 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/AsyncBoxView.html