Класс FlowView
- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
-
- javax.swing.text.BoxView
-
- javax.swing.text.FlowView
- Все реализованные интерфейсы:
SwingConstants
- Прямые известные подклассы:
ParagraphView
public abstract class FlowView extends BoxView
Представление, которое пытается расположить свои дочерние элементы в частично ограниченном пространстве. Это можно использовать для создания таких элементов, как абзацы, страницы и т. д. Поток состоит из следующих функциональных блоков.
- Логический набор представлений-потомков, который используется как пул макета для формирования физического представления.
- Стратегия для преобразования логического представления в физическое (с учётом потока) представление.
- Ограничения для работы стратегии.
- Физическая структура, представляющая поток. Дочерние элементы этого представления являются местами, где фрагменты логических представлений размещаются для создания потока.
- С момента:
- 1.3
- См. также:
View
Вложенные классы
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class | FlowView.FlowStrategy | Стратегия для поддержания физической формы потока. |
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected View | layoutPool | Это представления, которые представляют дочерние элементы элемента, который представляет это представление (логическое представление для преобразования в физическое представление). |
protected int | layoutSpan | Стандартное ограничение, по которому создаётся поток. |
protected FlowView.FlowStrategy | strategy | Поведение для поддержания обновления потока. |
Поля, объявленные в классе 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 Конструкторы
| Конструктор | Описание |
|---|---|
FlowView(Element elem,
int axis) | Создаёт FlowView для заданного элемента. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected SizeRequirements | calculateMinorAxisRequirements(int axis,
SizeRequirements r) | Вычисление требований вдоль малой оси. |
void | changedUpdate(DocumentEvent changes,
Shape a,
ViewFactory f) | Получение уведомления от документа о том, что атрибуты были изменены в месте, за которое отвечает это представление. |
protected abstract View | createRow() | Создаёт представление, которое должно использоваться для хранения строки дочерних элементов в потоке. |
int | getFlowAxis() | Получение оси, вдоль которой должны быть расположены представления. |
int | getFlowSpan(int index) | Получение ограниченного диапазона для потока для данного индекса дочернего элемента. |
int | getFlowStart(int index) | Получение местоположения вдоль оси потока, где начнется диапазон потока. |
protected int | getViewIndexAtPosition(int pos) | Получение индекса дочернего представления, представляющего данную позицию в модели. |
void | insertUpdate(DocumentEvent changes,
Shape a,
ViewFactory f) | Получение уведомления о том, что что-то было вставлено в документ в месте, за которое отвечает это представление. |
protected void | layout(int width,
int height) | Размещение дочерних элементов. |
protected void | loadChildren(ViewFactory f) | Загрузка всех дочерних элементов для инициализации представления. |
void | removeUpdate(DocumentEvent changes,
Shape a,
ViewFactory f) | Получение уведомления о том, что что-то было удалено из документа в месте, за которое отвечает это представление. |
Методы, объявленные в классе javax.swing.text.BoxView
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, childAllocation, flipEastAndWestAtEnds, forwardUpdate, getAlignment, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paint, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel Методы, объявленные в классе javax.swing.text.CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets, setParent Методы, объявленные в классе javax.swing.text.View
append, breakView, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateChildren, updateLayout, viewToModel Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
layoutSpan
protected int layoutSpan
Умолчательное ограничение, относительно которого создаётся поток.
layoutPool
protected View layoutPool
Это представления, которые отображают дочерние элементы элемента, который представляет это представление (логическое представление для преобразования в физическое представление). Они не являются непосредственными дочерними элементами этого представления. Они либо размещаются непосредственно в строки, либо используются для разделения на меньшие фрагменты, чтобы сформировать физическое представление.
strategy
protected FlowView.FlowStrategy strategy
Поведение для поддержания обновления потока. По умолчанию это одиночный экземпляр, общий для всех экземпляров FlowView (FlowStrategy является бессостоятельным). Подклассы могут создавать альтернативную стратегию, которая может сохранять состояние.
Конструкторы
FlowView
public FlowView(Element elem,
int axis) Создаёт FlowView для данного элемента.
- Параметры:
-
elem- элемент, за который отвечает это представление -
axis- может быть либо View.X_AXIS, либо View.Y_AXIS
Методы
getFlowAxis
public int getFlowAxis()
Получает ось, по которой должны быть выстроены представления. По умолчанию это ось, ортогональная оси, по которой выстраиваются строки потока (сама ось строк потока по умолчанию). Это обычно используется FlowStrategy.
- Возвращает:
- ось, по которой должны быть выстроены представления
getFlowSpan
public int getFlowSpan(int index)
Получает ограничивающую область для выстраивания по заданному индексу дочернего элемента. Это вызывается FlowStrategy во время обновления потока. Форму потока можно задать, предоставив различные значения для ограничений строки. По умолчанию возвращается вся область внутри отступов по оси потока.
- Параметры:
-
index- индекс строки, которая обновляется. Должно быть значение ≥ 0 и < getViewCount(). - Возвращает:
- ограничивающая область для выстраивания по заданному индексу дочернего элемента
- См. также:
getFlowStart(int)
getFlowStart
public int getFlowStart(int index)
Получает положение на оси потока, с которого начнётся область выстраивания потока. Это вызывается FlowStrategy во время обновления потока. Форму потока можно задать, предоставив различные значения для ограничений строки.
- Параметры:
-
index- индекс строки, которая обновляется. Должно быть значение ≥ 0 и < getViewCount(). - Возвращает:
- положение на оси потока, с которого начнётся область выстраивания потока
- См. также:
getFlowSpan(int)
createRow
protected abstract View createRow()
Создаёт представление, которое должно использоваться для хранения строки дочерних элементов в потоке. Это вызывается FlowStrategy, когда добавляются или удаляются новые дочерние элементы (т.е. добавляются или удаляются строки) в процессе обновления потока.
- Возвращает:
- представление, которое должно использоваться для хранения строки дочерних элементов в потоке
loadChildren
protected void loadChildren(ViewFactory f)
Загружает все дочерние элементы для инициализации представления. Это вызывается методом setParent. Это переопределено так, чтобы не загружать дочерние элементы напрямую (поскольку они создаются в процессе форматирования). Если переменная layoutPool равна null, создаётся экземпляр LogicalView для представления логического представления, используемого в процессе форматирования.
- Переопределяет:
-
loadChildrenв классеCompositeView - Параметры:
-
f- фабрика представлений - См. также:
CompositeView.setParent(javax.swing.text.View)
getViewIndexAtPosition
protected int getViewIndexAtPosition(int pos)
Получает индекс дочернего представления, соответствующего заданному положению в модели.
- Переопределяет:
-
getViewIndexAtPositionв классеCompositeView - Параметры:
-
pos- положение ≥ 0 - Возвращает:
- индекс представления, соответствующего заданному положению, или -1, если такое представление отсутствует
layout
protected void layout(int width,
int height) Выстраивает дочерние элементы. Если область по оси потока изменилась, выстраивание отмечается как недействительное, что заставит поведение суперкласса пересчитать выстраивание по оси ящика. Метод FlowStrategy.layout будет вызван для повторного построения строк потока, если это необходимо. Если высота этого представления изменится (определяется предпочтительным размером по оси ящика), вызывается preferenceChanged. После всего этого выполняется обычная компоновка ящика суперкласса.
- Переопределяет:
-
layoutв классеBoxView - Параметры:
-
width- ширина для выстраивания ≥ 0. Это ширина внутри области отступа. -
height- высота для выстраивания ≥ 0. Это высота внутри области отступа.
calculateMinorAxisRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis,
SizeRequirements r) Вычисляет требования по оси меньшей длины. Это реализовано для перенаправления запроса логическому представлению, вызывая getMinimumSpan, getPreferredSpan и getMaximumSpan на нём.
- Переопределяет:
-
calculateMinorAxisRequirementsв классеBoxView - Параметры:
-
axis- ось, по которой проводится изучение -
r- объектSizeRequirements; еслиnullтребуется, будет создан новый - Возвращает:
- новый инициализированный объект
SizeRequirements - См. также:
SizeRequirements
insertUpdate
public void insertUpdate(DocumentEvent changes,
Shape a,
ViewFactory f) Уведомляет о том, что что-то было вставлено в документ в место, за которое отвечает это представление.
- Переопределяет:
-
insertUpdateв классеView - Параметры:
-
changes- информация о изменении из связанного документа -
a- текущее выделение представления -
f- фабрика для использования при перестроении, если у представления есть дочерние элементы - См. также:
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
removeUpdate
public void removeUpdate(DocumentEvent changes,
Shape a,
ViewFactory f) Уведомляет о том, что что-то было удалено из документа в место, за которое отвечает это представление.
- Переопределяет:
-
removeUpdateв классеView - Параметры:
-
changes- информация о изменении из связанного документа -
a- текущее выделение представления -
f- фабрика для использования при перестроении, если у представления есть дочерние элементы - См. также:
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
changedUpdate
public void changedUpdate(DocumentEvent changes,
Shape a,
ViewFactory f) Получает уведомление от документа о том, что атрибуты были изменены в месте, за которое отвечает это представление.
- Переопределяет:
-
changedUpdateв классеView - Параметры:
-
changes- информация о изменении из связанного документа -
a- текущее выделение представления -
f- фабрика для использования при перестроении, если у представления есть дочерние элементы - См. также:
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/text/FlowView.html