Spec-Zone.ru › OpenJDK 21

Класс 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 для этого представления (обычно при рисовании).
Параметры:
axis - либо View.X_AXIS, либо View.Y_AXIS
С:
1.3

isLayoutValid

protected boolean isLayoutValid(int axis)
Определяет, является ли макет действительным вдоль заданной оси.
Параметры:
axis - либо View.X_AXIS, либо View.Y_AXIS
Возвращает:
является ли макет действительным вдоль заданной оси
С:
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)
Устанавливает размер представления. Это должно вызвать пересчет макета, если представление кэширует информацию о макете. Реализовано для вызова метода макета с размерами внутри отступов.
Переопределяет:
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)
Обеспечивает отображение из пространства координат представления в логическое пространство координат модели.
Переопределяет:
viewToModel в классе CompositeView
Параметры:
x - координата x расположения представления для преобразования >= 0
y - координата y расположения представления для преобразования >= 0
a - выделенная область для отрисовки
bias - либо Position.Bias.Forward, либо Position.Bias.Backward
Возвращает:
местоположение в модели, которое лучше всего представляет данную точку в представлении >= 0
См. также:
  • View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

getAlignment

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

getMinimumSpan

public float getMinimumSpan(int axis)
Определяет минимальный размер этого представления вдоль оси.
Overrides:
getMinimumSpan в классе 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 в классе 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 в классе 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 в классе 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 в классе CompositeView
Parameters:
x - координата X >= 0
y - координата Y >= 0
alloc - внутреннее выделение родителя при входе, которое должно быть изменено на выделение дочернего элемента при выходе
Returns:
представление

childAllocation

protected void childAllocation(int index, Rectangle alloc)
Выделяет область для дочернего представления.
Specified by:
childAllocation в классе 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

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 - пустой массив, заполненный этим методом значениями, определяющими размер каждого дочернего представления
END_OF_DOCUMENT_MARKER

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. Обычно представления выкладываются слева направо, так что представление в направлении ВОСТОК будет иметь индекс n + 1, а представление в направлении ЗАПАД – индекс n - 1. В некоторых ситуациях, например, с двунаправленным текстом, возможно, что представление в направлении ВОСТОК имеет не индекс n + 1, а n - 1, или что представление в направлении ЗАПАД имеет не индекс n - 1, а n + 1. В этом случае этот метод вернет true, указывая, что представления выложены в обратном порядке. В противном случае метод вернёт false, указывая, что представления выложены в прямом порядке.

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

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

© 1993, 2023, 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/21/docs/api/java.desktop/javax/swing/text/BoxView.html

Spec-Zone.ru

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