Класс 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) Создаёт |
Сводка методов
| Модификатор и тип | Метод и описание |
|---|---|
protected void |
baselineLayout(int targetSpan,
int axis,
int[] offsets,
int[] spans) Вычисляет расположение и размер каждого дочернего представления в этом |
protected SizeRequirements |
baselineRequirements(int axis,
SizeRequirements r) Вычисляет требования к размеру для этого |
protected SizeRequirements |
calculateMajorAxisRequirements(int axis,
SizeRequirements r) Вычисляет требования к размеру для основной оси |
protected SizeRequirements |
calculateMinorAxisRequirements(int axis,
SizeRequirements r) Вычисляет требования к размеру для побочной оси |
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) Передаёт заданное |
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) Отображает |
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() - смещение) -
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) Устанавливает размер области просмотра. Это должно привести к перекомпоновке области просмотра, если область просмотра кэширует информацию о компоновке. Реализовано для вызова метода компоновки с размерами внутри отступов.
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).
- Переопределяет:
-
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- для недопустимого типа оси - См. также:
View.getPreferredSpan(int)
getMinimumSpan
public float getMinimumSpan(int axis)
Определяет минимальный размах для этого представления по оси.
- Overrides:
-
getMinimumSpanв классеView - Параметры:
-
axis- может быть либоView.X_AXISилиView.Y_AXIS - Возвращает:
- размах, в который представление хочет быть рендерировано >= 0; обычно представление получает команду рендерить в этот размах, хотя это не гарантируется; родитель может выбрать изменение размера или разбиение представления
- Исключение:
-
IllegalArgumentException- для неверного типа оси - См. также:
View.getPreferredSpan(int)
getMaximumSpan
public float getMaximumSpan(int axis)
Определяет максимальный размах для этого представления по оси.
- Overrides:
-
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) Определяет, находится ли точка до выделенной области.
- Specified by:
-
isBeforeв классеCompositeView - Параметры:
-
x- координата X >= 0 -
y- координата Y >= 0 -
innerAlloc- выделенная область; это область внутри отступов - Возвращает:
- true, если точка находится до области, иначе false
isAfter
protected boolean isAfter(int x,
int y,
Rectangle innerAlloc) Определяет, находится ли точка после выделенной области.
- Specified by:
-
isAfterв классеCompositeView - Параметры:
-
x- координата X >= 0 -
y- координата Y >= 0 -
innerAlloc- выделенная область; это область внутри отступов - Возвращает:
- true, если точка находится после области, иначе false
getViewAtPoint
protected View getViewAtPoint(int x,
int y,
Rectangle alloc) Возвращает дочернее представление по заданным координатам.
- Specified by:
-
getViewAtPointв классеCompositeView - Параметры:
-
x- координата X >= 0 -
y- координата Y >= 0 -
alloc- внутреннее выделение родителя при входе, которое должно быть изменено на выделение дочернего элемента при выходе - Возвращает:
- представление
childAllocation
protected void childAllocation(int index,
Rectangle alloc) Выделяет область для дочернего представления.
- Specified by:
-
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. Обычно представления располагаются слева направо, так что представление на ВОСТОК будет иметь индекс 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, 2020, 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.