Класс AsyncBoxView
- Все реализованные интерфейсы:
SwingConstants
public class AsyncBoxView extends View
Во время доступа к дочернему представлению приобретается блокировка чтения для связанного документа, чтобы модель оставалась стабильной во время доступа.
- С тех пор:
- 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 |
Конструирует представление блока, выполняющего асинхронный макет. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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 |
Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели. |
Методы, объявленные в классе 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
Подробное описание полей
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()
- Возвращает:
- является ли основная ширина в настоящее время оцененной
- С тех пор:
- 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, если у этого представления ещё нет дочерних элементов. Дочерние элементы не должны загружаться в конструкторе, потому что сам акт установки родителя может заставить их попытаться найти предков (например, получить контейнер, в котором они размещены). Если у этого представления есть дочерние элементы (представление перемещается из одного места в иерархии представлений в другое), метод 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
- Specified by:
-
modelToViewin classView - Parameters:
-
pos- позиция для преобразования >= 0 -
a- область, выделенная для отрисовки -
b- смещение в сторону предыдущего или следующего символа, в случае если позиция является границей двух представлений. - Returns:
- возвращается ограничивающая рамка заданной позиции
- Throws:
-
BadLocationException- если заданная позиция не представляет допустимое местоположение в связанном документе -
IllegalArgumentException- для недопустимого аргумента смещения - See Also:
viewToModel
public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
Ожидается, что этот метод будет вызван потоком GUI, удерживая блокировку чтения на связанной модели. Он реализован для поиска дочернего представления и определения его выделения с блокировкой объекта ChildLocator и для вызова viewToModel в дочернем представлении с блокировкой объекта ChildState, чтобы избежать взаимодействия с потоком компоновки.
- Specified by:
-
viewToModelin classView - 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
BadLocationException.- Overrides:
-
getNextVisualPositionFromin classView - Parameters:
-
pos- позиция для преобразования -
b- смещение -
a- область, выделенная для отрисовки -
direction- направление от текущей позиции, которое можно представить как клавиши со стрелками на клавиатуре; это может быть одно из следующих:SwingConstants.WESTSwingConstants.EASTSwingConstants.NORTHSwingConstants.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