Spec-Zone.ru › OpenJDK 25

Класс 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. Если алгоритм компоновки изменён, вероятно, эти методы также потребуется переопределить.

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

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

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

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

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

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

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

Методы, объявленные в классе 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 для этого представления (обычно при отрисовке).
Параметры:
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(DocumentEvent, Shape, ViewFactory)
  • View.removeUpdate(DocumentEvent, Shape, ViewFactory)
  • View.changedUpdate(DocumentEvent, Shape, 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)
Задает размер представления. Это должно приводить к его размещению, если представление кэширует какие-либо сведения о размещении. Реализация вызывает метод размещения, передавая размеры области за вычетом внутренних отступов.
Переопределяет:
setSize в классе View
Параметры:
width — ширина >= 0
height — высота >= 0

paint

public void paint(Graphics g, Shape allocation)
Отрисовывает BoxView на указанной поверхности и в заданной области этой поверхности. Будут отрисованы только дочерние представления, пересекающиеся с границами области отсечения указанного Graphics.
Определено в:
paint в классе View
Параметры:
g — используемая поверхность для отрисовки
allocation — выделенная область для отрисовки
См. также:
  • View.paint(Graphics, 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, Shape, Position.Bias)

viewToModel

public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
Преобразует координаты представления в логические координаты модели.
Переопределяет:
viewToModel в классе CompositeView
Параметры:
x — координата x расположения в представлении для преобразования >= 0
y — координата y расположения в представлении для преобразования >= 0
a — выделенная область для отрисовки
bias — либо Position.Bias.Forward, либо Position.Bias.Backward
Возвращает:
расположение в модели, наилучшим образом соответствующее указанной точке в представлении >= 0
См. также:
  • View.viewToModel(float, float, Shape, Position.Bias[])

getAlignment

public float getAlignment(int axis)
Определяет требуемое выравнивание этого представления вдоль оси. Реализация вычисляет общее выравнивание, необходимое для позиционирования дочерних представлений так, чтобы их точки выравнивания совпадали вдоль оси, перпендикулярной оси размещения. Для оси размещения запрашивается центрирование (т. е. 0.5f).
Переопределяет:
getAlignment в классе View
Параметры:
axis — может быть View.X_AXIS или View.Y_AXIS
Возвращает:
требуемое выравнивание >= 0.0f && <= 1.0f; значение должно находиться в диапазоне от 0.0 до 1.0, где 0 означает выравнивание по началу координат, а 1.0 — выравнивание на расстоянии полного размера от начала координат; выравнивание 0.5 соответствует центру представления
Выбрасывает:
IllegalArgumentException — если ось недопустима

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)

isAllocationValid

protected boolean isAllocationValid()
Остаются ли выделенные дочерним представлениям области действительными?
Возвращает:
true, если выделенные области по-прежнему действительны

isBefore

protected boolean isBefore(int x, int y, Rectangle innerAlloc)
Определяет, находится ли точка перед выделенной областью.
Определено в:
isBefore в классе CompositeView
Параметры:
x — координата X >= 0
y — координата Y >= 0
innerAlloc — выделенная область; это область внутри внутренних отступов
Возвращает:
true, если точка находится перед областью; в противном случае — false

isAfter

protected boolean isAfter(int x, int y, Rectangle innerAlloc)
Определяет, находится ли точка после выделенной области.
Определено в:
isAfter в классе CompositeView
Параметры:
x — координата X >= 0
y — координата Y >= 0
innerAlloc — выделенная область; это область внутри внутренних отступов
Возвращает:
true, если точка находится после области; в противном случае — false

getViewAtPoint

protected View getViewAtPoint(int x, int y, Rectangle alloc)
Возвращает дочернее представление, расположенное по указанным координатам.
Определено в:
getViewAtPoint в классе CompositeView
Параметры:
x — координата X >= 0
y — координата Y >= 0
alloc — внутренняя выделенная область родительского представления при входе; при выходе ее следует заменить выделенной областью дочернего представления
Возвращает:
представление

childAllocation

protected void childAllocation(int index, Rectangle alloc)
Выделяет область для дочернего представления.
Определено в:
childAllocation в классе CompositeView
Параметры:
index — индекс дочернего представления, для которого выделяется область, >= 0 && < getViewCount()
alloc — выделенная область

layout

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

getWidth

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

getHeight

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

layoutMajorAxis

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

layoutMinorAxis

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

calculateMajorAxisRequirements

protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r)
Вычисляет требования к размеру для главной оси axis.
Параметры:
axis — исследуемая ось
r — объект SizeRequirements; если null, он будет создан
Возвращает:
вновь инициализированный объект SizeRequirements
См. также:
  • SizeRequirements

calculateMinorAxisRequirements

protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
Вычисляет требования к размеру для второстепенной оси axis.
Параметры:
axis — исследуемая ось
r — объект SizeRequirements; если null, он будет создан
Возвращает:
вновь инициализированный объект SizeRequirements
См. также:
  • SizeRequirements

baselineLayout

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

baselineRequirements

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

getOffset

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

getSpan

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

flipEastAndWestAtEnds

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/BoxView.html

Spec-Zone.ru

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