Класс ParagraphView
- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.CompositeView
-
- javax.swing.text.BoxView
-
- javax.swing.text.FlowView
-
- javax.swing.text.ParagraphView
- Все реализованные интерфейсы:
- SwingConstants, TabExpander
- Прямые известные подклассы:
- ParagraphView
public class ParagraphView extends FlowView implements TabExpander
Представление простого абзаца с переходом на новую строку, поддерживающего несколько шрифтов, цветов, компонентов, значков и т. д. По сути, это вертикальная коробка с отступом вокруг неё. Содержимое коробки — набор строк, которые являются специальными горизонтальными коробками. Это представление создаёт коллекцию представлений, представляющих дочерние элементы элемента абзаца. Каждый из этих представлений размещается в строке непосредственно, если он вписывается, в противном случае вызывается метод breakView для попытки разбить представление на части, которые впишутся.
- См. также:
View
Вложенные классы
Вложенные классы/интерфейсы, унаследованные от класса javax.swing.text.FlowView
FlowView.FlowStrategy Поля
| Модификатор и тип | Поле и описание |
|---|---|
protected int |
firstLineIndent Отступ для первой строки слева. |
Поля, унаследованные от класса javax.swing.text.FlowView
layoutPool, layoutSpan, 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 Конструкторы
| Конструктор и описание |
|---|
ParagraphView(Element elem) Конструирует |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
View |
breakView(int axis,
float len,
Shape a) Разбивает это представление на заданной оси по заданной длине. |
protected SizeRequirements |
calculateMinorAxisRequirements(int axis,
SizeRequirements r) Вычисляет потребности абзаца по малой оси. |
void |
changedUpdate(DocumentEvent changes,
Shape a,
ViewFactory f) Получает уведомление от документа о том, что атрибуты были изменены в позиции, за которую это представление отвечает. |
protected View |
createRow() Создаёт |
protected int |
findOffsetToCharactersInString(char[] string,
int start) Находит следующую букву в документе с буквой в |
protected boolean |
flipEastAndWestAtEnds(int position,
Position.Bias bias) Определяет, в каком направлении расположено следующее представление. |
float |
getAlignment(int axis) Определяет желаемое выравнивание для этого представления по оси. |
int |
getBreakWeight(int axis,
float len) Получает вес разрыва для данной позиции. |
protected int |
getClosestPositionTo(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet,
int rowIndex,
int x) Возвращает ближайшую позицию модели к |
int |
getFlowSpan(int index) Получает ограниченный диапазон для потока для данного индекса дочернего элемента. |
int |
getFlowStart(int index) Получает позицию на оси потока, в которой будет начинаться диапазон потока. |
protected View |
getLayoutView(int index) Возвращает представление по заданному |
protected int |
getLayoutViewCount() Возвращает количество представлений, за которые это представление отвечает. |
protected int |
getNextNorthSouthVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet) Возвращает следующую визуальную позицию курсора в направлении восток или запад. |
protected float |
getPartialSize(int startOffset,
int endOffset) Возвращает размер, используемый представлениями между |
protected float |
getTabBase() Возвращает, откуда вычисляются табуляции. |
protected TabSet |
getTabSet() Получает |
float |
nextTabStop(float x,
int tabOffset) Возвращает следующую позицию табуляции относительно опорной позиции. |
void |
paint(Graphics g,
Shape a) Отображает с использованием заданной поверхности и области на этой поверхности. |
protected void |
setFirstLineIndent(float fi) Устанавливает отступ первой строки. |
protected void |
setJustification(int j) Устанавливает тип выравнивания. |
protected void |
setLineSpacing(float ls) Устанавливает интерлиньяж. |
protected void |
setPropertiesFromAttributes() Устанавливает кэшированные свойства из атрибутов. |
Методы, унаследованные от класса javax.swing.text.FlowView
getFlowAxis, getViewIndexAtPosition, insertUpdate, layout, loadChildren, removeUpdate, setParent Методы, унаследованные от класса javax.swing.text.BoxView
baselineLayout, baselineRequirements, calculateMajorAxisRequirements, childAllocation, forwardUpdate, getAxis, getChildAllocation, getHeight, getMaximumSpan, getMinimumSpan, getOffset, getPreferredSpan, getResizeWeight, getSpan, getViewAtPoint, getWidth, isAfter, isAllocationValid, isBefore, isLayoutValid, layoutChanged, layoutMajorAxis, layoutMinorAxis, modelToView, paintChild, preferenceChanged, replace, setAxis, setSize, viewToModel Методы, унаследованные от класса javax.swing.text.CompositeView
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, modelToView, setInsets, setParagraphInsets Методы, унаследованные от класса 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 Поля
firstLineIndent
protected int firstLineIndent
Отступ первой строки слева.
Конструкторы
ParagraphView
public ParagraphView(Element elem)
Конструирует ParagraphView для заданного элемента.
- Параметры:
-
elem- элемент, за который отвечает этот вид
Методы
setJustification
protected void setJustification(int j)
Устанавливает тип выравнивания.
- Параметры:
-
j- одно из следующих значений:-
StyleConstants.ALIGN_LEFT -
StyleConstants.ALIGN_CENTER -
StyleConstants.ALIGN_RIGHT
-
setLineSpacing
protected void setLineSpacing(float ls)
Устанавливает интерлиньяж.
- Параметры:
-
ls- значение, являющееся множителем высоты строки
setFirstLineIndent
protected void setFirstLineIndent(float fi)
Устанавливает отступ первой строки.
- Параметры:
-
fi- значение в пунктах
setPropertiesFromAttributes
protected void setPropertiesFromAttributes()
Устанавливает кэшированные свойства из атрибутов.
getLayoutViewCount
protected int getLayoutViewCount()
Возвращает количество представлений, за которые отвечает этот вид. Дочерние представления абзаца — это строки, которые использовались для упорядочивания фрагментов View , представляющих дочерние элементы. Это количество представлений, которые были уложены в два измерения, и должно быть равно количеству дочерних элементов элемента, за который отвечает этот вид.
- Возвращает:
- количество представлений, за которые отвечает этот
ParagraphView
getLayoutView
protected View getLayoutView(int index)
Возвращает представление по заданному index. Дочерние представления абзаца — это строки, которые использовались для упорядочивания фрагментов Views , представляющих дочерние элементы. Этот метод возвращает представление, отвечающее за дочерний элемент с индексом (до разрыва). Это представления, которые были созданы из фабрики (для представления дочерних элементов) и использовались для компоновки.
- Параметры:
-
index- индекс желаемого представления - Возвращает:
- представление по
index
getNextNorthSouthVisualPositionFrom
protected int getNextNorthSouthVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
throws BadLocationException Возвращает следующую визуальную позицию курсора в направлении восток или запад. Переопределено из CompositeView.
- Переопределяет:
-
getNextNorthSouthVisualPositionFromв классеCompositeView - Параметры:
-
pos- позиция в модели -
b- либоPosition.Bias.Forward, либоPosition.Bias.Backward -
a- выделенная область для рендеринга -
direction- либоSwingConstants.NORTH, либоSwingConstants.SOUTH -
biasRet- массив, содержащий проверенные смещения - Возвращает:
- позиция в модели, представляющая следующую визуальную позицию
- Исключения:
BadLocationException- См. также:
CompositeView.getNextVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
getClosestPositionTo
protected int getClosestPositionTo(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet,
int rowIndex,
int x)
throws BadLocationException Возвращает ближайшую позицию модели к x. rowIndex указывает индекс представления, который следует проверить.
- Параметры:
-
pos- позиция в модели -
a- выделенная область для рендеринга -
direction- одно из следующих значений:-
SwingConstants.NORTH -
SwingConstants.SOUTH
-
-
biasRet- массив, содержащий проверенные смещения -
rowIndex- индекс представления -
x- координата x - Возвращает:
- наиболее близкую позицию модели к
x - Исключения:
BadLocationException
flipEastAndWestAtEnds
protected boolean flipEastAndWestAtEnds(int position,
Position.Bias bias) Определяет направление расположения следующего представления. Рассмотрим View с индексом n. Обычно View располагаются слева направо, так что View на восток будет иметь индекс n + 1, а View на запад — индекс n - 1. В некоторых ситуациях, например, с двунаправленным текстом, возможно, что View на восток не находится по индексу n + 1, а по индексу n - 1, или что View на запад не по индексу n - 1, а по индексу n + 1. В этом случае этот метод вернет true, указывая, что View располагаются в обратном порядке.
Этот метод вернет true, если текст выровнен справа налево, в противном случае false.
- Переопределяет:
-
flipEastAndWestAtEndsв классеBoxView - Параметры:
-
position- позиция в модели -
bias- либоPosition.Bias.Forward, либоPosition.Bias.Backward - Возвращает:
- true, если текст выровнен справа налево, в противном случае false.
getFlowSpan
public int getFlowSpan(int index)
Получает ограничительную область для потока для заданного индекса дочернего элемента.
- Переопределяет:
-
getFlowSpanв классеFlowView - Параметры:
-
index- индекс представления, которое запрашивается - Возвращает:
- ограничительная область для данного представления по
index - См. также:
FlowView.getFlowStart(int)
getFlowStart
public int getFlowStart(int index)
Получает положение вдоль оси потока, в котором начнется область потока.
- Переопределяет:
-
getFlowStartв классеFlowView - Параметры:
-
index- индекс представления, которое запрашивается - Возвращает:
- местоположение для данного представления по
index - См. также:
FlowView.getFlowSpan(int)
createRow
protected View createRow()
Создает View , который должен использоваться для хранения строки дочерних элементов в потоке.
nextTabStop
public float nextTabStop(float x,
int tabOffset) Возвращает следующее положение отступа, заданное ссылочной позицией. Этот вид реализует систему координат табуляции и вызывает getTabbedSpan у логических дочерних элементов в процессе компоновки, чтобы определить желаемую область дочерних элементов. Логические дочерние элементы могут делегировать свои потребности в расширении табуляции абзацу, который знает, как расширять табуляции. LabelView — это пример вида, который делегирует свои потребности в расширении табуляции абзацу.
Эта реализация пытается найти TabSet в наборе атрибутов элемента абзаца. Если такой найдется, его настройки будут использованы, в противном случае будет предоставлено значение по умолчанию. Базовым местоположением для расширения табуляции является левый отступ последнего распределения абзацев (на котором основана компоновка дочерних элементов).
- Задано:
-
nextTabStopв интерфейсеTabExpander - Параметры:
-
x- позиция X ссылки -
tabOffset- позиция в потоке текста, где произошла табуляция >= 0 - Возвращает:
- задний конец расширения табуляции >= 0
- См. также:
-
TabSet,TabStop,LabelView
getTabSet
protected TabSet getTabSet()
Получает Tabset для расчета отступов.
- Возвращает:
TabSet
getPartialSize
protected float getPartialSize(int startOffset,
int endOffset) Возвращает размер, используемый представлениями между startOffset и endOffset . Для расчета размера используется getPartialView, если дочернее представление реализует интерфейс TabableView. Если размер необходим, а View не реализует интерфейс TabableView, будет использован preferredSpan.
- Параметры:
-
startOffset- начальный смещение документа >= 0 -
endOffset- конечное смещение документа >= startOffset - Возвращает:
- размер >= 0
findOffsetToCharactersInString
protected int findOffsetToCharactersInString(char[] string,
int start) Находит следующий символ в документе со символом в string, начиная со смещения start. Если символы не найдены, возвращается -1.
- Параметры:
-
string- строка символов -
start- где начать в модели >= 0 - Возвращает:
- смещение документа, или -1, если символы не найдены
getTabBase
protected float getTabBase()
Возвращает, откуда рассчитываются отступы.
- Возвращает:
- откуда рассчитываются отступы
paint
public void paint(Graphics g,
Shape a) Отрисовывает, используя заданную поверхность рендеринга и область на этой поверхности. Реализовано для делегирования суперклассу после хранения базовой координаты для расчета отступов.
- Переопределяет:
-
paintв классеBoxView - Параметры:
-
g- поверхность рендеринга для использования -
a- выделенная область для рендеринга - См. также:
View.paint(java.awt.Graphics, java.awt.Shape)
getAlignment
public float getAlignment(int axis)
Определяет желаемое выравнивание для этого вида по оси. Реализовано для задания выравнивания по центру первой строки по оси y и по умолчанию по оси x.
- Переопределяет:
-
getAlignmentв классеBoxView - Параметры:
-
axis- может быть либоView.X_AXISилиView.Y_AXIS - Возвращает:
- желаемое выравнивание. Это должно быть значение от 0,0 до 1,0 включительно, где 0 указывает выравнивание по началу, а 1,0 — выравнивание по всей области, удаленной от начала. Выравнивание 0,5 соответствует центру представления.
breakView
public View breakView(int axis,
float len,
Shape a) Разбивает это представление по заданной оси по заданной длине.
ParagraphView экземпляры разделяются только вдоль Y_AXIS, и только если len находится после первой строки.
- Параметры:
-
axis- может быть либоView.X_AXISилиView.Y_AXIS -
len- указывает, где требуется потенциальный разрыв вдоль заданной оси >= 0 -
a- текущее распределение представления - Возвращает:
- фрагмент представления, представляющий заданный отрезок, если представление можно разбить; если представление не поддерживает поведение разделения, возвращается само представление
- См. также:
View.breakView(int, int, float, float)
getBreakWeight
public int getBreakWeight(int axis,
float len) Получает вес разрыва для заданного местоположения.
ParagraphView экземпляры разделяются только вдоль Y_AXIS, и только если len находится после первой строки. Если длина меньше одной строки, возвращается значение BadBreakWeight.
- Параметры:
-
axis- может быть либоView.X_AXISилиView.Y_AXIS -
len- указывает, где требуется потенциальный разрыв >= 0 - Возвращает:
- значение, указывающее привлекательность разрыва здесь; либо
GoodBreakWeight, либоBadBreakWeight - См. также:
View.getBreakWeight(int, float, float)
calculateMinorAxisRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis,
SizeRequirements r) Вычисляет потребности абзаца по оси меньшей длины.
Использует требования к размеру суперкласса, измененные с учетом областей, не подлежащих разделению, на краях смежных представлений. Минимальные требования к размеру таких представлений должны быть не меньше суммы всех смежных фрагментов.
Если параметр axis не равен ни View.X_AXIS, ни View.Y_AXIS, выбрасывается IllegalArgumentException. Если параметр r равен null,, создается новый объект SizeRequirements, в противном случае возвращается предоставленный объект SizeRequirements.
- Переопределяет:
-
calculateMinorAxisRequirementsв классеFlowView - Параметры:
-
axis- ось меньшей длины -
r- входной объектSizeRequirements - Возвращает:
- новый или измененный объект
SizeRequirements - Использует:
-
IllegalArgumentException- если параметрaxisнекорректен - См. также:
SizeRequirements
changedUpdate
public void changedUpdate(DocumentEvent changes,
Shape a,
ViewFactory f) Предоставляет уведомление от документа о том, что атрибуты были изменены в месте, за которое это представление отвечает.
- Переопределяет:
-
changedUpdateв классеFlowView - Параметры:
-
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.