Spec-Zone.ru › OpenJDK 25

Класс 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

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в классе FlowView

FlowView.FlowStrategy

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

Модификатор и тип Поле Описание
protected int firstLineIndent
Отступ первой строки от левого внутреннего отступа.

Поля, объявленные в классе FlowView

layoutPool, layoutSpan, strategy

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

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

Конструктор Описание
ParagraphView(Element elem)
Создает ParagraphView для заданного элемента.

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

Модификатор и тип Метод Описание
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()
Создает View, предназначенное для размещения набора дочерних элементов одной строки в потоке.
protected int findOffsetToCharactersInString(char[] string, int start)
Находит следующий символ в документе, входящий в string, начиная со смещения 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)
Возвращает ближайшую позицию модели к x.
int getFlowSpan(int index)
Возвращает ограничивающий интервал потока для заданного индекса дочернего элемента.
int getFlowStart(int index)
Возвращает расположение вдоль оси потока, с которого начинается интервал потока.
protected View getLayoutView(int index)
Возвращает представление по заданному 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)
Возвращает размер, используемый представлениями между startOffset и endOffset.
protected float getTabBase()
Возвращает начальную позицию, относительно которой вычисляются позиции табуляции.
protected TabSet getTabSet()
Получает Tabset, используемый при вычислении позиций табуляции.
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()
Задает кэшированные свойства на основе атрибутов.

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

getFlowAxis, getViewIndexAtPosition, insertUpdate, layout, loadChildren, removeUpdate

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

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

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

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

Методы, объявленные в классе 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 требуемого представления
Возвращает:
представление по адресу 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, Position.Bias, Shape, int, 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 — позиция в модели
b — смещение
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
Начиная с версии:
1.3
См. также:
  • FlowView.getFlowStart(int)

getFlowStart

public int getFlowStart(int index)
Возвращает расположение вдоль оси потока, с которого начинается интервал потока.
Переопределяет:
getFlowStart в классе FlowView
Параметры:
index — индекс запрашиваемого представления
Возвращает:
расположение для заданного представления по адресу index
Начиная с версии:
1.3
См. также:
  • FlowView.getFlowSpan(int)

createRow

protected View createRow()
Создает View, предназначенное для размещения набора дочерних элементов одной строки в потоке.
Определено в:
createRow в классе FlowView
Возвращает:
новое View
Начиная с версии:
1.3

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. Если дочернее представление реализует интерфейс TabableView, для вычисления размера используется getPartialView. Если размер требуется, а 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(Graphics, 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(DocumentEvent, Shape, ViewFactory)

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

Spec-Zone.ru

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