Spec-Zone.ru › OpenJDK 24

Класс AsyncBoxView

java.lang.Object
javax.swing.text.View
javax.swing.text.AsyncBoxView
Все реализованные интерфейсы:
SwingConstants
public class AsyncBoxView extends View
Блок, выполняющий макет асинхронно. Это полезно для поддержания работы потока GUI, не выполняя макет в нём. Макет выполняется с гранулярностью операций над дочерними представлениями. После доступа к каждому дочернему представлению для какой-то части макета (потенциально длительной операции) оставшиеся задачи могут быть отменены или может быть взята на себя новая задача с более высоким приоритетом (например, для обслуживания синхронного запроса или видимой области).

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

С тех пор:
1.3

Краткое описание вложенных классов

Модификатор и тип Класс Описание
class  AsyncBoxView.ChildLocator
Класс для управления эффективным расположением дочерних представлений в локальной области при изменениях в области вокруг локальной области.
class  AsyncBoxView.ChildState
Запись, представляющая состояние макета дочернего представления.

Краткое описание полей

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

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

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

Конструктор Описание
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)
Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели.

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

Методы, объявленные в классе java.lang.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()
Является ли основная ширина в настоящее время оцененной?
Возвращает:
является ли основная ширина в настоящее время оцененной
С тех пор:
1.4

getChildState

protected AsyncBoxView.ChildState getChildState(int index)
Получение объекта, представляющего состояние компоновки дочернего элемента по заданному индексу.
Параметры:
index - индекс дочернего элемента. Должно быть значением >= 0 и < getViewCount().
Возвращает:
объект, представляющий состояние компоновки дочернего элемента по заданному индексу

getLayoutQueue

protected LayoutQueue getLayoutQueue()
Получение очереди для использования при компоновке.
Возвращает:
очередь для использования при компоновке

createChildState

protected AsyncBoxView.ChildState createChildState(View v)
Новые записи ChildState создаются с помощью этого метода, чтобы позволить подклассам расширять записи ChildState для выполнения/хранения большего количества данных.
Параметры:
v - представление
Возвращает:
новое состояние дочернего элемента

majorRequirementChange

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

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

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

minorRequirementChange

protected void minorRequirementChange(AsyncBoxView.ChildState cs)
Изменение требований по дополнительной оси. Вызывается потоком, выполняющим компоновку для данного объекта ChildState, когда он завершил получение новых предпочтений дочерних представлений. Обычно это поток компоновки, но может быть GUI-потоком, если он пытается обновить что-то немедленно (например, для выполнения преобразования модель/представление).
Параметры:
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(javax.swing.text.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(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
  • View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

setParent

public void setParent(View parent)
Устанавливает родителя представления. Это переопределено для обеспечения поведения суперкласса, а также вызова метода loadChildren, если у этого представления ещё нет дочерних элементов. Дочерние элементы не должны загружаться в конструкторе, потому что сам акт установки родителя может заставить их попытаться найти предков (например, получить контейнер, в котором они размещены). Если у этого представления есть дочерние элементы (представление перемещается из одного места в иерархии представлений в другое), метод 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(java.awt.Graphics, java.awt.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
Обеспечивает отображение из координатного пространства модели документа в координатное пространство связанного с ним представления.
Specified by:
modelToView in class View
Parameters:
pos - позиция для преобразования >= 0
a - область, выделенная для отрисовки
b - смещение в сторону предыдущего или следующего символа, в случае если позиция является границей двух представлений.
Returns:
возвращается ограничивающая рамка заданной позиции
Throws:
BadLocationException - если заданная позиция не представляет допустимое местоположение в связанном документе
IllegalArgumentException - для недопустимого аргумента смещения
See Also:
  • View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

viewToModel

public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Обеспечивает отображение из координатного пространства представления в логическое координатное пространство модели. Аргумент biasReturn будет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или предыдущему символу в модели.

Ожидается, что этот метод будет вызван потоком GUI, удерживая блокировку чтения на связанной модели. Он реализован для поиска дочернего представления и определения его выделения с блокировкой объекта ChildLocator и для вызова viewToModel в дочернем представлении с блокировкой объекта ChildState, чтобы избежать взаимодействия с потоком компоновки.

Specified by:
viewToModel in class View
Parameters:
x - координата X >= 0
y - координата Y >= 0
a - область, выделенная для отрисовки
biasReturn - возвращаемое смещение
Returns:
местоположение в модели, которое лучше всего представляет заданную точку в представлении >= 0. Аргумент biasReturn будет заполнен, чтобы указать, что заданная точка ближе к следующему символу в модели или предыдущему символу в модели.

getNextVisualPositionFrom

public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
Предоставляет способ определения следующего визуально представленного местоположения модели, куда можно поместить курсор. Некоторые представления могут быть невидимыми, они могут не быть в том же порядке, что и в модели, или они просто могут не допускать доступа к некоторым местоположениям в модели. Этот метод позволяет указать позицию для преобразования в пределах диапазона >=0. Если значение равно -1, позиция будет рассчитана автоматически. Если значение < -1, будет брошено исключение BadLocationException.
Overrides:
getNextVisualPositionFrom in class View
Parameters:
pos - позиция для преобразования
b - смещение
a - область, выделенная для отрисовки
direction - направление от текущей позиции, которое можно представить как клавиши со стрелками на клавиатуре; это может быть одно из следующих:
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
biasRet - массив, содержащий проверенное смещение
Returns:
местоположение в модели, которое лучше всего представляет следующую визуальную позицию
Throws:
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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/text/AsyncBoxView.html

Spec-Zone.ru

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