Spec-Zone.ru › OpenJDK 24

Класс BoxView

java.lang.Object
javax.swing.text.View
javax.swing.text.CompositeView
javax.swing.text.BoxView
Все реализованные интерфейсы:
SwingConstants
Непосредственные известные подклассы:
BlockView, FlowView, TableView, TableView.TableCell, TableView.TableRow, WrappedPlainView, ZoneView
public class BoxView extends CompositeView
Представление, которое организует своих потомков в форму прямоугольника, выкладывая их вдоль оси. Прямоугольник чем-то напоминает тот, что используется в TeX, где есть выравнивание потомков, учитывается гибкость потомков и т. д. Это строительный блок, который может быть полезен для представления таких вещей, как набор строк, абзацев, списков, столбцов, страниц и т. д. Ось, вдоль которой выкладываются потомки, считается главной осью. Перпендикулярная ось — это второстепенная ось.

Вычисление макета для каждой оси выполняется методами layoutMajorAxis и layoutMinorAxis. Подклассы могут изменить алгоритм макета, переопределив эти методы. Эти методы будут вызываться по мере необходимости, в зависимости от того, есть ли кешированные данные макета и считается ли кеш действительным. Эти методы обычно вызываются, если заданный размер вдоль оси изменяется или если метод layoutChanged вызывается для принудительного обновления макета. Метод layoutChanged делает недействительными кешированные данные макета, если таковые имеются. Требования, опубликованные для родительского представления, вычисляются методами calculateMajorAxisRequirements и calculateMinorAxisRequirements. Если алгоритм макета изменяется, эти методы, вероятно, потребуется переопределить.

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

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

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

Конструктор Описание
BoxView(Element elem, int axis)
Создает BoxView.

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

Модификатор и тип Метод Описание
protected void baselineLayout(int targetSpan, int axis, int[] offsets, int[] spans)
Вычисляет расположение и размер каждого представления дочернего элемента в этом BoxView, учитывая targetSpan, которое представляет собой ширину (или высоту) области, с которой нужно работать.
protected SizeRequirements baselineRequirements(int axis, SizeRequirements r)
Вычисляет размер, требуемый для этого BoxView, исследуя размер каждого представления дочернего элемента.
protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r)
Вычисляет размер, требуемый для главной оси axis.
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
Вычисляет размер, требуемый для второстепенной оси axis.
protected void childAllocation(int index, Rectangle alloc)
Выделяет область для представления дочернего элемента.
protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
Определяет направление, в котором расположен следующее представление.
protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
Передает заданное DocumentEvent представлениям дочерних элементов, которые должны быть уведомлены об изменении модели.
float getAlignment(int axis)
Определяет желаемое выравнивание для этого представления вдоль оси.
int getAxis()
Получает свойство оси разбиения.
Shape getChildAllocation(int index, Shape a)
Получает выделение для данного представления дочернего элемента.
int getHeight()
Возвращает текущую высоту прямоугольника.
float getMaximumSpan(int axis)
Определяет максимальную длину для этого представления вдоль оси.
float getMinimumSpan(int axis)
Определяет минимальную длину для этого представления вдоль оси.
protected int getOffset(int axis, int childIndex)
Получает смещение текущего макета определенного дочернего элемента.
float getPreferredSpan(int axis)
Определяет предпочтительную длину для этого представления вдоль оси.
int getResizeWeight(int axis)
Получает коэффициент изменения размера.
protected int getSpan(int axis, int childIndex)
Получает длину определенного дочернего элемента текущего макета.
protected View getViewAtPoint(int x, int y, Rectangle alloc)
Получает представление дочернего элемента по заданным координатам.
int getWidth()
Возвращает текущую ширину прямоугольника.
protected boolean isAfter(int x, int y, Rectangle innerAlloc)
Определяет, находится ли точка после выделенной области.
protected boolean isAllocationValid()
Действительны ли выделения для дочерних элементов?
protected boolean isBefore(int x, int y, Rectangle innerAlloc)
Определяет, находится ли точка перед выделенной областью.
protected boolean isLayoutValid(int axis)
Определяет, является ли макет действительным вдоль заданной оси.
protected void layout(int width, int height)
Выполняет макетирование прямоугольника
void layoutChanged(int axis)
Делает макет недействительным вдоль оси.
protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
Выполняет макетирование для главной оси прямоугольника (т. е. оси, которую он представляет).
protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
Выполняет макетирование для второстепенной оси прямоугольника (т. е. оси, перпендикулярной оси, которую он представляет).
Shape modelToView(int pos, Shape a, Position.Bias b)
Предоставляет отображение из координатного пространства модели документа в координатное пространство представления, сопоставленного с ним.
void paint(Graphics g, Shape allocation)
Отрисовывает BoxView с помощью заданной поверхности отрисовки и области на этой поверхности.
protected void paintChild(Graphics g, Rectangle alloc, int index)
Отрисовывает дочерний элемент.
void preferenceChanged(View child, boolean width, boolean height)
Вызывается дочерним элементом для указания того, что его предпочтительная длина изменилась.
void replace(int index, int length, View[] elems)
Делает макет недействительным и перестраивает кеш запросов/выделений.
void setAxis(int axis)
Устанавливает свойство оси разбиения.
void setSize(float width, float height)
Устанавливает размер представления.
int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
Предоставляет отображение из координатного пространства представления в логическое координатное пространство модели.

Методы, объявленные в классе javax.swing.text.CompositeView

getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, getViewIndexAtPosition, loadChildren, modelToView, setInsets, setParagraphInsets, setParent

Методы, объявленные в классе javax.swing.text.View

append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, remove, removeAll, removeUpdate, updateChildren, updateLayout, viewToModel

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

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

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

BoxView

public BoxView(Element elem, int axis)
Создаёт BoxView.
Параметры:
elem - элемент, за который отвечает данный вид
axis - либо View.X_AXIS, либо View.Y_AXIS

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

getAxis

public int getAxis()
Возвращает свойство оси разбиения. Это ось, вдоль которой размещаются дочерние представления.
Возвращает:
главная ось ящика, либо View.X_AXIS, либо View.Y_AXIS
С:
1.3

setAxis

public void setAxis(int axis)
Устанавливает свойство оси разбиения. Это ось, вдоль которой размещаются дочерние представления.
Параметры:
axis - либо View.X_AXIS, либо View.Y_AXIS
С:
1.3

layoutChanged

public void layoutChanged(int axis)
Обнуляет макет вдоль оси. Это происходит автоматически, если изменились предпочтения любого из дочерних представлений. В некоторых случаях макет может потребовать перерасчёта, даже если предпочтения не изменились. Можно отметить макет как недействительный, вызвав этот метод. Макет будет обновлён в следующий раз, когда для данного представления будет вызван метод setSize (как правило, в методе paint).
Параметры:
axis - либо View.X_AXIS, либо View.Y_AXIS
С:
1.3

isLayoutValid

protected boolean isLayoutValid(int axis)
Определяет, является ли макет действительным вдоль заданной оси.
Параметры:
axis - либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
true, если макет действителен вдоль заданной оси, иначе false
С:
1.4

paintChild

protected void paintChild(Graphics g, Rectangle alloc, int index)
Рисует дочерний элемент. По умолчанию, это всё, что он делает, но подкласс может использовать это для рисования элементов относительно дочернего элемента.
Параметры:
g - контекст графики
alloc - выделенная область для рисования
index - индекс дочернего элемента, >= 0 && < getViewCount()

replace

public void replace(int index, int length, View[] elems)
Обнуляет макет и переразмеряет кэш запросов/выделений. Доступ к выделениям дочерних элементов для старого макета всё ещё возможен, но у новых дочерних элементов будет смещение и размах 0.
Переопределяет:
replace в классе CompositeView
Параметры:
index - начальный индекс дочерних представлений для вставки новых представлений; это значение должно быть >= 0 и <= getViewCount
length - количество существующих дочерних представлений для удаления; это значение должно быть >= 0 и <= (getViewCount() - offset)
elems - дочерние представления для добавления; это значение может быть null, чтобы указать, что дочерние элементы не добавляются (полезно для удаления)

forwardUpdate

protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
Пересылает данное DocumentEvent дочерним представлениям, которые должны быть уведомлены об изменении модели. Если дочерний элемент изменил свои требования, а выделение было действительным до пересылки, то часть ящика от начального дочернего элемента до конца ящика будет перерисована.
Переопределяет:
forwardUpdate в классе View
Параметры:
ec - изменения элемента, за который отвечает данное представление (может быть null, если изменений не было)
e - информация об изменении из связанного документа
a - текущее выделение представления
f - фабрика, используемая для перестроения, если у представления есть дочерние элементы
С:
1.3
См. также:
  • 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)

preferenceChanged

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

getResizeWeight

public int getResizeWeight(int axis)
Получает вес изменения размера. Значение 0 или меньше означает, что элемент не изменяется.
Переопределяет:
getResizeWeight в классе View
Параметры:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
вес
Исключение:
IllegalArgumentException - для недопустимой оси

setSize

public void setSize(float width, float height)
Устанавливает размер представления. Это должно вызвать перерасчёт макета, если представление кэширует какие-либо данные макета. Этот метод реализован для вызова метода layout с размерами внутри отступов.
Переопределяет:
setSize в классе View
Параметры:
width - ширина >= 0
height - высота >= 0

paint

public void paint(Graphics g, Shape allocation)
Отображает BoxView с использованием заданной поверхности рендеринга и области на этой поверхности. Будут отрисованы только те дочерние элементы, которые пересекают область обрезки заданной Graphics.
Определено в:
paint в классе View
Параметры:
g - поверхность рендеринга для использования
allocation - выделенная область для отображения
См. также:
  • View.paint(java.awt.Graphics, java.awt.Shape)

getChildAllocation

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

modelToView

public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
Обеспечивает преобразование между пространством координат модели документа и пространством координат представления, отображённого в нём. Это гарантирует, что выделение является действительным перед вызовом метода суперкласса.
Переопределяет:
modelToView в классе CompositeView
Параметры:
pos - позиция для преобразования >= 0
a - выделенная область для отображения
b - значение смещения, либо Position.Bias.Forward, либо Position.Bias.Backward
Возвращает:
окружающий прямоугольник заданной позиции
Исключение:
BadLocationException - если заданная позиция не представляет действительное местоположение в связанном документе
См. также:
  • View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

viewToModel

public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
Обеспечивает отображение координат пространства просмотра на логическое координатное пространство модели.
Overrides:
viewToModel in class CompositeView
Parameters:
x - координата x местоположения в представлении для преобразования >= 0
y - координата y местоположения в представлении для преобразования >= 0
a - выделенная область для отрисовки
bias - либо Position.Bias.Forward, либо Position.Bias.Backward
Returns:
местоположение в модели, наилучшим образом представляющее заданную точку в представлении >= 0
See Also:
  • View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

getAlignment

public float getAlignment(int axis)
Определяет желаемое выравнивание этого представления по оси. Это реализовано для обеспечения общего выравнивания, необходимого для позиционирования дочерних элементов с выровненными точками выравнивания по оси, ортогональной оси, по которой происходит чередование. Ось, по которой происходит чередование, запросит центрирование (т.е. 0,5f).
Overrides:
getAlignment in class View
Parameters:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Returns:
желаемое выравнивание >= 0,0f && <= 1,0f; это должно быть значение от 0,0 до 1,0, где 0 указывает на выравнивание с началом координат, а 1,0 указывает на выравнивание по всей ширине, удаляясь от начала координат; выравнивание 0,5 будет центром представления
Throws:
IllegalArgumentException - для неверной оси

getPreferredSpan

public float getPreferredSpan(int axis)
Определяет предпочтительную ширину этого представления по оси.
Specified by:
getPreferredSpan in class View
Parameters:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Returns:
ширина, которую представление желает для отрисовки >= 0; как правило, представлению сообщается об отрисовке в указанную ширину, хотя это не гарантируется; родительский элемент может выбрать изменение размера или разбиение представления
Throws:
IllegalArgumentException - для неверного типа оси

getMinimumSpan

public float getMinimumSpan(int axis)
Определяет минимальную ширину этого представления по оси.
Overrides:
getMinimumSpan in class View
Parameters:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Returns:
ширина, которую представление желает для отрисовки >= 0; как правило, представлению сообщается об отрисовке в указанную ширину, хотя это не гарантируется; родительский элемент может выбрать изменение размера или разбиение представления
Throws:
IllegalArgumentException - для неверного типа оси
See Also:
  • View.getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)
Определяет максимальную ширину этого представления по оси.
Overrides:
getMaximumSpan in class View
Parameters:
axis - может быть либо View.X_AXIS, либо View.Y_AXIS
Returns:
ширина, которую представление желает для отрисовки >= 0; как правило, представлению сообщается об отрисовке в указанную ширину, хотя это не гарантируется; родительский элемент может выбрать изменение размера или разбиение представления
Throws:
IllegalArgumentException - для неверного типа оси
See Also:
  • View.getPreferredSpan(int)

isAllocationValid

protected boolean isAllocationValid()
Являются ли выделения для дочерних элементов по-прежнему действительными?
Returns:
true, если выделения по-прежнему действительны

isBefore

protected boolean isBefore(int x, int y, Rectangle innerAlloc)
Определяет, попадает ли точка перед выделенной областью.
Specified by:
isBefore in class CompositeView
Parameters:
x - координата X >= 0
y - координата Y >= 0
innerAlloc - выделенная область; это область внутри отступов
Returns:
true, если точка находится перед областью, иначе false

isAfter

protected boolean isAfter(int x, int y, Rectangle innerAlloc)
Определяет, попадает ли точка после выделенной области.
Specified by:
isAfter in class CompositeView
Parameters:
x - координата X >= 0
y - координата Y >= 0
innerAlloc - выделенная область; это область внутри отступов
Returns:
true, если точка находится после области, иначе false

getViewAtPoint

protected View getViewAtPoint(int x, int y, Rectangle alloc)
Возвращает дочернее представление в заданных координатах.
Specified by:
getViewAtPoint in class CompositeView
Parameters:
x - координата X >= 0
y - координата Y >= 0
alloc - внутреннее выделение родителя при входе, которое должно быть изменено на выделение дочернего элемента при выходе
Returns:
представление

childAllocation

protected void childAllocation(int index, Rectangle alloc)
Выделяет область для дочернего представления.
Specified by:
childAllocation in class CompositeView
Parameters:
index - индекс дочернего представления для выделения, >= 0 && < getViewCount()
alloc - выделенная область

layout

protected void layout(int width, int height)
Выполнить размещение в блоке
Parameters:
width - ширина (внутри отступов) >= 0
height - высота (внутри отступов) >= 0

getWidth

public int getWidth()
Возвращает текущую ширину блока. Это ширина, которая была последней выделенной.
Returns:
текущая ширина блока

getHeight

public int getHeight()
Возвращает текущую высоту блока. Это высота, которая была последней выделенной.
Returns:
текущая высота блока

layoutMajorAxis

protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
Выполняет размещение по основной оси блока (т. е. оси, которую он представляет). Результаты размещения (смещение и ширина каждого дочернего элемента) помещаются в заданные массивы, которые представляют выделения для дочерних элементов вдоль основной оси.
Parameters:
targetSpan - общая ширина, предоставленная представлению, которая будет использоваться для размещения дочерних элементов
axis - ось, по которой происходит размещение
offsets - смещения от начала координат представления для каждого из дочерних представлений; это значение возврата, и оно заполняется реализацией этого метода
spans - ширина каждого дочернего представления; это значение возврата, и оно заполняется реализацией этого метода

layoutMinorAxis

protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
Выполняет размещение по дополнительной оси блока (т. е. оси, ортогональной оси, которую он представляет). Результаты размещения (смещение и ширина каждого дочернего элемента) помещаются в заданные массивы, которые представляют выделения для дочерних элементов вдоль дополнительной оси.
Parameters:
targetSpan - общая ширина, предоставленная представлению, которая будет использоваться для размещения дочерних элементов
axis - ось, по которой происходит размещение
offsets - смещения от начала координат представления для каждого из дочерних представлений; это значение возврата, и оно заполняется реализацией этого метода
spans - ширина каждого дочернего представления; это значение возврата, и оно заполняется реализацией этого метода

calculateMajorAxisRequirements

protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r)
Вычисляет требования к размеру для основной оси axis.
Parameters:
axis - ось, по которой идёт изучение
r - объект SizeRequirements; если null один будет создан
Returns:
новый инициализированный объект SizeRequirements
See Also:
  • SizeRequirements
END_OF_DOCUMENT_MARKER

calculateMinorAxisRequirements

protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
Вычисляет требования к размеру малой оси axis.
Parameters:
axis - ось, которая изучается
r - объект SizeRequirements; если null, будет создан новый
Returns:
новый инициализированный объект SizeRequirements
See Also:
  • SizeRequirements

baselineLayout

protected void baselineLayout(int targetSpan, int axis, int[] offsets, int[] spans)
Вычисляет расположение и размеры каждого дочернего представления в этом BoxView, учитывая targetSpan, которое представляет собой ширину (или высоту) области, с которой нужно работать.
Parameters:
targetSpan - общий размер, предоставляемый представлению, который будет использоваться для размещения дочерних элементов
axis - изучаемая ось, либо View.X_AXIS, либо View.Y_AXIS
offsets - пустой массив, заполняемый этим методом значениями, определяющими расположение каждого дочернего представления
spans - пустой массив, заполняемый этим методом значениями, определяющими размеры каждого дочернего представления

baselineRequirements

protected SizeRequirements baselineRequirements(int axis, SizeRequirements r)
Вычисляет требования к размеру этого BoxView, анализируя размеры каждого дочернего представления.
Parameters:
axis - изучаемая ось
r - объект SizeRequirements; если null, будет создан новый
Returns:
новый инициализированный объект SizeRequirements

getOffset

protected int getOffset(int axis, int childIndex)
Получает смещение конкретного дочернего элемента в текущей компоновке.
Parameters:
axis - изучаемая ось
childIndex - индекс запрашиваемого дочернего элемента
Returns:
смещение (расположение) для указанного дочернего элемента

getSpan

protected int getSpan(int axis, int childIndex)
Получает размер конкретного дочернего элемента в текущей компоновке.
Parameters:
axis - изучаемая ось
childIndex - индекс запрашиваемого дочернего элемента
Returns:
размер (ширина или высота) указанного дочернего элемента

flipEastAndWestAtEnds

protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
Определяет направление расположения следующего представления. Рассмотрим представление с индексом n. Обычно представления выстраиваются слева направо, так что представление, находящееся справа (восточная сторона), будет иметь индекс n + 1, а представление, находящееся слева (западная сторона), будет иметь индекс n - 1. В определенных ситуациях, таких как с двунаправленным текстом, возможно, что представление, находящееся справа, не имеет индекс n + 1, а индекс n - 1, или что представление, находящееся слева, не имеет индекс n - 1, а индекс n + 1. В этом случае этот метод вернёт true, указывая, что представления выстроены в обратном порядке. В противном случае метод вернёт false, указывая, что представления выстроены в прямом порядке.

Если получатель выстраивает свои представления по Y_AXIS, это вернёт значение из вызова того же метода на View, отвечающем за отрисовку position и bias. В противном случае это вернёт false.

Overrides:
flipEastAndWestAtEnds в классе CompositeView
Parameters:
position - позиция в модели
bias - либо Position.Bias.Forward, либо Position.Bias.Backward
Returns:
true, если представления, окружающие View, отвечающее за отрисовку position и bias, выстроены в обратном порядке; иначе false

© 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/BoxView.html

Spec-Zone.ru

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