Spec-Zone.ru › OpenJDK 25

Класс AsyncBoxView

java.lang.Object
javax.swing.text.View
javax.swing.text.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(Element elem, int axis)
Создает представление-контейнер, выполняющее асинхронную компоновку.

Краткое описание методов

Модификатор и тип Метод Описание
protected AsyncBoxView.ChildState createChildState(View v)
Новые записи ChildState создаются с помощью этого метода, чтобы подклассы могли расширять записи ChildState и добавлять в них данные или функциональность.
protected void flushRequirementChanges()
Передает изменения предпочтений родительскому представлению.
float getBottomInset()
Возвращает нижнюю часть отступа вокруг представления.
Shape getChildAllocation(int index, Shape a)
Получает область размещения для указанного дочернего представления.
protected AsyncBoxView.ChildState getChildState(int index)
Получает объект, представляющий состояние компоновки дочернего элемента с указанным индексом.
protected boolean getEstimatedMajorSpan()
Выполнена ли на данный момент оценка основного размера?
protected float getInsetSpan(int axis)
Получает размер, занимаемый вставками вдоль заданной оси.
protected LayoutQueue getLayoutQueue()
Получает очередь, используемую для компоновки.
float getLeftInset()
Возвращает левую часть отступа вокруг представления.
int getMajorAxis()
Получает основную ось (ось, вдоль которой расположены дочерние элементы).
float getMaximumSpan(int axis)
Определяет максимальный размер этого представления вдоль заданной оси.
float getMinimumSpan(int axis)
Определяет минимальный размер этого представления вдоль заданной оси.
int getMinorAxis()
Получает второстепенную ось (ось, перпендикулярную оси размещения).
int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
Позволяет определить следующее визуально представленное местоположение в модели, в котором можно разместить каретку.
float getPreferredSpan(int axis)
Определяет предпочтительный размер этого представления вдоль заданной оси.
float getRightInset()
Возвращает правую часть отступа вокруг представления.
float getTopInset()
Возвращает верхнюю часть отступа вокруг представления.
View getView(int n)
Возвращает n-е дочернее представление.
int getViewCount()
Возвращает количество представлений в этом представлении.
int getViewIndex(int pos, Position.Bias b)
Возвращает индекс дочернего представления, соответствующий указанной позиции в модели.
protected int getViewIndexAtPosition(int pos, Position.Bias b)
Получает индекс дочернего представления, соответствующий указанной позиции в модели.
protected void loadChildren(ViewFactory f)
Загружает все дочерние представления для инициализации представления.
protected void majorRequirementChange(AsyncBoxView.ChildState cs, float delta)
Требования вдоль основной оси изменились.
protected void minorRequirementChange(AsyncBoxView.ChildState cs)
Требования вдоль второстепенной оси изменились.
Shape modelToView(int pos, Shape a, Position.Bias b)
Преобразует координаты пространства модели документа в координаты пространства соответствующего ей представления.
void paint(Graphics g, Shape alloc)
Отображает представление, используя заданную область размещения и поверхность отрисовки.
void preferenceChanged(View child, boolean width, boolean height)
Дочерние представления могут вызвать этот метод у родительского представления, чтобы сообщить об изменении предпочтения и необходимости повторно учесть его при компоновке.
void replace(int offset, int length, View[] views)
Вызывает метод суперкласса для обновления дочерних представлений и обновляет записи состояния дочерних элементов.
void setBottomInset(float i)
Задает нижнюю часть отступа вокруг представления.
protected void setEstimatedMajorSpan(boolean isEstimated)
Задает свойство estimatedMajorSpan, определяющее, следует ли считать основной размер оценочным.
void setLeftInset(float i)
Задает левую часть отступа вокруг представления.
void setParent(View parent)
Задает родительское представление.
void setRightInset(float i)
Задает правую часть отступа вокруг представления.
void setSize(float width, float height)
Задает размер представления.
void setTopInset(float i)
Задает верхнюю часть отступа вокруг представления.
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
Обновляет компоновку в ответ на уведомление об изменении модели.
int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Преобразует координаты пространства представления в логические координаты пространства модели.

Методы, объявленные в классе 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

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

locator

protected AsyncBoxView.ChildLocator locator
Объект, управляющий смещениями дочерних элементов. Все блокировки при управлении расположением дочерних элементов выполняются на этом объекте.

Подробное описание конструкторов

AsyncBoxView

public AsyncBoxView(Element elem, int axis)
Создает представление-контейнер с асинхронным размещением.
Параметры:
elem — элемент модели для отображения
axis — ось, вдоль которой выполняется размещение. Может принимать значение X_AXIS или Y_AXIS.

Подробное описание методов

getMajorAxis

public int getMajorAxis()
Возвращает основную ось (ось, вдоль которой размещаются дочерние элементы). Может принимать значение X_AXIS или Y_AXIS.
Возвращает:
основную ось

getMinorAxis

public int getMinorAxis()
Возвращает второстепенную ось (ось, перпендикулярную оси размещения). Может принимать значение X_AXIS или Y_AXIS.
Возвращает:
второстепенную ось

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)
Задает свойство estimatedMajorSpan, определяющее, следует ли считать размер по основной оси приблизительным. Если это свойство имеет значение true, значение setSize вдоль основной оси изменяет требования вдоль этой оси, а инкрементальные изменения игнорируются до обновления всех дочерних элементов (после этого свойству автоматически присваивается значение false). Если свойство имеет значение false, значение majorSpan считается точным, а инкрементальные изменения добавляются к общему значению по мере их вычисления.
Параметры:
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)
Новые записи ChildState создаются этим методом, чтобы подклассы могли расширить их функциональность и хранить дополнительные данные.
Параметры:
v — представление
Возвращает:
новое состояние дочернего элемента

majorRequirementChange

protected void majorRequirementChange(AsyncBoxView.ChildState cs, float delta)
Изменились требования вдоль основной оси. Этот метод вызывается потоком, выполняющим размещение для указанного объекта ChildState, после получения новых предпочтений дочерних представлений. Обычно это поток размещения, но вызов может быть выполнен и потоком обработки событий, если ему требуется немедленно обновить что-либо (например, выполнить преобразование координат модели и представления).

Реализация помечает основную ось как измененную, чтобы при следующей проверке необходимости передать требования родительскому представлению учитывалась эта ось. Если размер вдоль основной оси не является приблизительным, он обновляется на указанную величину изменения, отражая инкрементальное изменение. Если размер по основной оси является приблизительным, величина изменения игнорируется.

Параметры:
cs — состояние дочернего элемента
delta — величина изменения

minorRequirementChange

protected void minorRequirementChange(AsyncBoxView.ChildState cs)
Изменились требования вдоль второстепенной оси. Этот метод вызывается потоком, выполняющим размещение для указанного объекта ChildState, после получения новых предпочтений дочерних представлений. Обычно это поток размещения, но вызов может быть выполнен и потоком графического интерфейса, если ему требуется немедленно обновить что-либо (например, выполнить преобразование координат модели и представления).
Параметры:
cs — состояние дочернего элемента

flushRequirementChanges

protected void flushRequirementChanges()
Передает изменения предпочтений родительскому представлению. Обычно этот метод вызывается потоком размещения.

replace

public void replace(int offset, int length, View[] views)
Вызывает метод суперкласса для обновления дочерних представлений и обновляет записи состояния дочерних элементов. Предполагается, что этот метод вызывается при удержании блокировки записи модели, чтобы исключить взаимодействие с потоком размещения (то есть перед выполнением любых действий поток размещения получает блокировку чтения).
Переопределяет:
replace в классе View
Параметры:
offset — начальное смещение в дочерних представлениях >= 0
length — количество заменяемых существующих представлений >= 0
views — вставляемые дочерние представления

loadChildren

protected void loadChildren(ViewFactory f)
Загружает все дочерние элементы для инициализации представления. Этот метод вызывается методом setParent. Подклассы могут переопределить его, чтобы инициализировать дочерние представления другим способом. Реализация по умолчанию создает дочернее представление для каждого дочернего элемента.

Обычно во время изменения дочерних элементов документ блокируется для записи, что обеспечивает безопасность потоков отображения и размещения. Исключение составляет инициализация представления для существующего элемента (с помощью этого метода): в этом случае для исключения вызова preferenceChanged во время инициализации используется синхронизация.

Параметры:
f — фабрика представлений
См. также:
  • setParent(View)

getViewIndexAtPosition

protected int getViewIndexAtPosition(int pos, Position.Bias b)
Возвращает индекс дочернего представления, соответствующего указанной позиции в модели. Реализация возвращает представление в том случае, когда для каждого дочернего элемента существует дочернее представление.
Параметры:
pos — позиция >= 0
b — смещение позиции
Возвращает:
индекс представления, соответствующего указанной позиции, или -1, если ни одно представление ей не соответствует

updateLayout

protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
Обновляет размещение в ответ на уведомление об изменении модели. Реализация регистрирует изменение в ChildLocator, чтобы смещения дочерних элементов вычислялись правильно.
Переопределяет:
updateLayout в классе View
Параметры:
ec — изменения элемента, за который отвечает это представление (может быть null, если изменений не было).
e — сведения об изменении связанного документа
a — текущая область, выделенная для представления
См. также:
  • View.insertUpdate(DocumentEvent, Shape, ViewFactory)
  • View.removeUpdate(DocumentEvent, Shape, ViewFactory)
  • View.changedUpdate(DocumentEvent, Shape, ViewFactory)

setParent

public void setParent(View parent)
Задает родительское представление. Метод переопределен, чтобы сохранить поведение суперкласса и вызвать метод loadChildren, если у этого представления еще нет дочерних элементов. Дочерние элементы не следует загружать в конструкторе, поскольку установка родителя может привести к тому, что они начнут искать родительские элементы в иерархии (например, чтобы получить содержащий их Container). Если у представления есть дочерние элементы (то есть оно перемещается из одной части иерархии представлений в другую), метод loadChildren вызван не будет.
Переопределяет:
setParent в классе View
Параметры:
parent — родительское представление или null, если его нет

preferenceChanged

public void preferenceChanged(View child, boolean width, boolean height)
Дочерние представления могут вызвать этот метод у родительского, чтобы сообщить об изменении предпочтений и необходимости повторно учесть их при размещении. Метод переопределен для постановки новых задач в очередь потока размещения. Дочерние представления могут вызывать этот метод из нескольких потоков.
Переопределяет:
preferenceChanged в классе View
Параметры:
child — дочернее представление
width — true, если изменилось предпочтение по ширине
height — true, если изменилось предпочтение по высоте
См. также:
  • JComponent.revalidate()

setSize

public void setSize(float width, float height)
Задает размер представления. Если представление кэширует сведения о размещении, это должно привести к его переразмещению.

Поскольку основная ось обновляется асинхронно и ее размер должен равняться сумме размеров размещенных дочерних элементов, вызов для основной оси игнорируется. Второстепенная ось является гибкой, поэтому при изменении ее размера в очередь помещается задача на изменение размеров дочерних элементов.

Переопределяет:
setSize в классе View
Параметры:
width — ширина >= 0
height — высота >= 0

paint

public void paint(Graphics g, Shape alloc)
Отображает представление в указанной области на поверхности для отрисовки.

Реализация проверяет, актуальна ли область, которую требуется отобразить (то есть область без обрезки). Если она актуальна, дочерние элементы отображаются. В противном случае задача построения нужной области помещается в очередь размещения с высоким приоритетом. Это позволяет потоку обработки событий продолжать работу: он выполняет отрисовку, если данные готовы, а если нет — откладывает ее на более позднее время (поскольку запросы на отрисовку можно перенести).

Определено в:
paint в классе View
Параметры:
g — поверхность для отрисовки
alloc — область, выделенная для отрисовки
См. также:
  • View.paint(Graphics, Shape)

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 — если тип оси недопустим
См. также:
  • View.getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)
Определяет максимальный размер этого представления вдоль указанной оси.
Переопределяет:
getMaximumSpan в классе View
Параметры:
axis — может иметь значение View.X_AXIS или View.Y_AXIS
Возвращает:
размер области, в которой предпочтительно отображать представление >= 0. Обычно представлению выделяется область возвращенного размера, однако это не гарантируется. Родительское представление может изменить размер или разбить это представление.
Вызывает исключение:
IllegalArgumentException — если тип оси недопустим
См. также:
  • View.getPreferredSpan(int)

getViewCount

public int getViewCount()
Возвращает количество представлений в этом представлении. Поскольку по умолчанию представление не является составным, метод возвращает 0.
Переопределяет:
getViewCount в классе View
Возвращает:
количество представлений >= 0
См. также:
  • View.getViewCount()

getView

public View getView(int n)
Возвращает n-е дочернее представление. Поскольку по умолчанию дочерних элементов нет, метод возвращает null.
Переопределяет:
getView в классе View
Параметры:
n — номер возвращаемого представления: >= 0 && < getViewCount()
Возвращает:
представление

getChildAllocation

public Shape getChildAllocation(int index, Shape a)
Возвращает область, выделенную указанному дочернему представлению. Это позволяет определить расположение различных представлений, не предполагая, что они хранят сведения о своем расположении. Метод возвращает null, поскольку по умолчанию дочерних представлений нет.
Переопределяет:
getChildAllocation в классе View
Параметры:
index — индекс дочернего элемента: >= 0 && < getViewCount()
a — область, выделенная этому представлению.
Возвращает:
область, выделенную дочернему элементу

getViewIndex

public int getViewIndex(int pos, Position.Bias b)
Возвращает индекс дочернего представления, соответствующего указанной позиции в модели. По умолчанию у представления нет дочерних элементов, поэтому метод возвращает -1, указывая, что для этой позиции нет допустимого индекса дочернего элемента.
Переопределяет:
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 — если аргумент смещения недопустим
См. также:
  • View.viewToModel(float, float, Shape, Position.Bias[])

viewToModel

public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Преобразует координаты представления в логические координаты модели. Аргумент 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
Позволяет определить следующее визуально представленное местоположение в модели, куда можно поместить каретку. Некоторые представления могут быть невидимы, отображаться не в том порядке, в котором они расположены в модели, или не предоставлять доступ к некоторым местоположениям модели. Этот метод позволяет указать позицию для преобразования в диапазоне >=0. Если значение равно -1, позиция вычисляется автоматически. Если значение меньше -1, будет выброшено исключение BadLocationException.
Переопределяет:
getNextVisualPositionFrom в классе View
Параметры:
pos — преобразуемая позиция
b — смещение
a — область, выделенная для отрисовки
direction — направление от текущей позиции, соответствующее клавишам со стрелками на клавиатуре; может принимать одно из следующих значений:
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
biasRet — массив, содержащий проверенное смещение
Возвращает:
местоположение в модели, наилучшим образом соответствующее следующей визуальной позиции
Вызывает исключение:
BadLocationException — если указанная позиция недопустима для документа
IllegalArgumentException — если direction недопустим

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API