Spec-Zone.ru › OpenJDK 27

Класс ComponentView

java.lang.Object
javax.swing.text.View
javax.swing.text.ComponentView
Все реализуемые интерфейсы:
SwingConstants
Прямые подклассы:
FormView, ObjectView
public class ComponentView extends View
Декоратор компонента, реализующий интерфейс представления. Весь элемент используется для представления компонента. Он служит связующим звеном между реализациями View, предназначенными только для отображения, и интерактивными облегчёнными компонентами (то есть позволяет встраивать компоненты в иерархию View).

Компонент размещается относительно базовой линии текста в соответствии со значением, возвращаемым Component.getAlignmentY. Для компонентов Swing это значение удобно задавать с помощью метода JComponent.setAlignmentY. Например, установка значения 0.75 приведёт к тому, что 75 процентов компонента окажутся выше базовой линии, а 25 процентов — ниже неё.

Этот класс реализован с учётом дополнительных требований, необходимых для корректной работы при наличии нескольких потоков (например, при асинхронном уведомлении об изменениях модели): он гарантирует, что весь доступ к компоненту осуществляется в потоке обработки событий.

Используемый компонент определяется возвращаемым значением метода createComponent. Реализация этого метода по умолчанию возвращает компонент, хранящийся в элементе как атрибут (посредством вызова StyleConstants.getComponent). Ограничение такого поведения заключается в том, что компонент нельзя использовать более чем в одном текстовом компоненте (то есть с общей моделью). Подклассы могут снять это ограничение, реализовав createComponent таким образом, чтобы он действительно создавал компонент на основе некоторой спецификации, содержащейся в атрибутах. Класс ObjectView из пакета html — пример реализации ComponentView, поддерживающей несколько представлений компонентов для общей модели.

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

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

BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
Модификатор и тип Поле Описание
static final int BadBreakWeight
Вес, указывающий, что представление — неподходящее место для переноса при форматировании.
static final int ExcellentBreakWeight
Вес, указывающий, что представление поддерживает перенос и является очень подходящим местом для него.
static final int ForcedBreakWeight
Вес, указывающий, что представление поддерживает перенос и его необходимо перенести для корректного отображения в представлении, форматирующем дочерние элементы с помощью переносов.
static final int GoodBreakWeight
Вес, указывающий, что представление поддерживает перенос, но, вероятно, существуют более подходящие места.
static final int X_AXIS
Ось для операций форматирования и переноса.
static final int 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
Модификатор и тип Поле Описание
static final int BOTTOM
Константа ориентации блока, указывающая его нижнюю сторону.
static final int CENTER
Центральная позиция в области.
static final int EAST
Направление по компасу на восток (вправо).
static final int HORIZONTAL
Горизонтальная ориентация.
static final int LEADING
Обозначает передний край текста для языков с направлением письма слева направо и справа налево.
static final int LEFT
Константа ориентации блока, указывающая его левую сторону.
static final int NEXT
Обозначает следующее направление в последовательности.
static final int NORTH
Направление по компасу на север (вверх).
static final int NORTH_EAST
Направление по компасу на северо-восток (вверх и вправо).
static final int NORTH_WEST
Направление по компасу на северо-запад (вверх и влево).
static final int PREVIOUS
Обозначает предыдущее направление в последовательности.
static final int RIGHT
Константа ориентации блока, указывающая его правую сторону.
static final int SOUTH
Направление по компасу на юг (вниз).
static final int SOUTH_EAST
Направление по компасу на юго-восток (вниз и вправо).
static final int SOUTH_WEST
Направление по компасу на юго-запад (вниз и влево).
static final int TOP
Константа ориентации блока, указывающая его верхнюю сторону.
static final int TRAILING
Обозначает задний край текста для языков с направлением письма слева направо и справа налево.
static final int VERTICAL
Вертикальная ориентация.
static final int WEST
Направление по компасу на запад (влево).

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

Конструктор Описание
ComponentView(Element elem)
Создаёт новый объект ComponentView.

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

Модификатор и тип Метод Описание
protected Component createComponent()
Создаёт компонент, связанный с этим представлением.
float getAlignment(int axis)
Определяет требуемое выравнивание этого представления вдоль оси.
final Component getComponent()
Получает компонент, связанный с представлением.
float getMaximumSpan(int axis)
Определяет максимальную протяжённость этого представления вдоль оси.
float getMinimumSpan(int axis)
Определяет минимальную протяжённость этого представления вдоль оси.
float getPreferredSpan(int axis)
Определяет предпочтительную протяжённость этого представления вдоль оси.
Shape modelToView(int pos, Shape a, Position.Bias b)
Обеспечивает преобразование координат из пространства модели в пространство представления.
void paint(Graphics g, Shape a)
Фактическая отрисовка выполняется естественным образом благодаря связи компонента с его родительским контейнером (тем же контейнером, в котором размещено это представление).
void setParent(View p)
Задаёт родительское представление для дочернего представления.
int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
Обеспечивает преобразование координат из пространства представления в логическое пространство координат модели.

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

append, breakView, changedUpdate, createFragment, forwardUpdate, forwardUpdateToView, getAttributes, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, removeUpdate, replace, setSize, updateChildren, updateLayout, viewToModel
Модификатор и тип Метод Описание
void append(View v)
Добавляет одно дочернее представление.
View breakView(int axis, int offset, float pos, float len)
Пытается перенести это представление по указанной оси.
void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
Документ уведомляет об изменении атрибутов в области, за которую отвечает это представление.
View createFragment(int p0, int p1)
Создаёт представление, описывающее часть элемента.
protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
Передаёт указанный DocumentEvent дочерним представлениям, которые необходимо уведомить об изменении модели.
protected void forwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f)
Передаёт DocumentEvent указанному дочернему представлению.
AttributeSet getAttributes()
Получает атрибуты для отрисовки.
int getBreakWeight(int axis, float pos, float len)
Определяет, насколько удачно в этом представлении место для переноса.
Shape getChildAllocation(int index, Shape a)
Получает область размещения указанного дочернего представления.
Container getContainer()
Получает контейнер, в котором размещено представление.
Document getDocument()
Получает модель, связанную с представлением.
Element getElement()
Получает структурную часть объекта, с которой сопоставлено это представление.
int getEndOffset()
Получает часть модели, за которую отвечает это представление.
Graphics getGraphics()
Получает Graphics для отрисовки.
int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
Позволяет определить следующее визуально представленное место в модели, где можно разместить курсор.
View getParent()
Возвращает родительское представление.
int getResizeWeight(int axis)
Определяет возможность изменения размера представления вдоль указанной оси.
int getStartOffset()
Получает часть модели, за которую отвечает это представление.
String getToolTipText(float x, float y, Shape allocation)
Возвращает текст всплывающей подсказки в указанном месте.
View getView(int n)
Получает n-е дочернее представление.
int getViewCount()
Возвращает количество представлений в этом представлении.
ViewFactory getViewFactory()
Получает реализацию ViewFactory, передающую данные в иерархию представлений.
int getViewIndex(float x, float y, Shape allocation)
Возвращает индекс дочернего представления, соответствующий указанной позиции в представлении.
int getViewIndex(int pos, Position.Bias b)
Возвращает индекс дочернего представления, соответствующий указанной позиции в модели.
void insert(int offs, View v)
Вставляет одно дочернее представление.
void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
Уведомляет о вставке данных в документ в области, за которую отвечает это представление.
boolean isVisible()
Возвращает логическое значение, указывающее, видно ли представление.
Shape modelToView(int pos, Shape a)
Устарело.
Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)
Для указанной области обеспечивает преобразование координат из пространства модели документа в пространство координат представления.
void preferenceChanged(View child, boolean width, boolean height)
Дочерние представления могут вызвать этот метод у родительского, чтобы сообщить об изменении предпочтений, которые необходимо учесть при компоновке.
void remove(int i)
Удаляет дочернее представление в указанной позиции.
void removeAll()
Удаляет все дочерние представления.
void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
Уведомляет об удалении данных из документа в области, за которую отвечает это представление.
void replace(int offset, int length, View[] views)
Заменяет дочерние представления.
void setSize(float width, float height)
Задаёт размер представления.
protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
Обновляет дочерние представления в ответ на уведомление об изменении модели, если запись об изменении относится к элементу, за который отвечает это представление.
protected void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
Обновляет компоновку в ответ на уведомление об изменении модели.
int viewToModel(float x, float y, Shape a)
Устарело.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.

Подробное описание конструкторов

ComponentView

public ComponentView(Element elem)
Создаёт новый объект ComponentView.
Параметры:
elem — элемент для декорирования

Подробное описание методов

createComponent

protected Component createComponent()
Создаёт компонент, связанный с этим представлением. Этот метод вызывается, когда определяется необходимость в новом компоненте. Это происходит в результате вызова setParent или уведомления об изменении атрибутов.
Возвращает:
компонент, связанный с этим представлением

getComponent

public final Component getComponent()
Получает компонент, связанный с представлением.
Возвращает:
компонент, связанный с представлением

paint

public void paint(Graphics g, Shape a)
Фактическая отрисовка выполняется естественным образом благодаря связи компонента с его родительским контейнером (тем же контейнером, в котором размещено это представление). Реализация этого метода ничего не делает.
Определено в:
paint в классе View
Параметры:
g — графический контекст
a — фигура
См. также:
  • View.paint(Graphics, Shape)

getPreferredSpan

public float getPreferredSpan(int axis)
Определяет предпочтительную протяжённость этого представления вдоль оси. Реализация возвращает значение, которое Component.getPreferredSize задаёт для интересующей оси.
Определено в:
getPreferredSpan в классе View
Параметры:
axis — может быть View.X_AXIS или View.Y_AXIS
Возвращает:
протяжённость, в пределах которой предпочтительно отрисовать представление (>=0). Обычно представлению предлагают отрисоваться в пределах возвращённой протяжённости, но это не гарантируется. Родительское представление может изменить размер или перенести это представление.
Вызывает исключение:
IllegalArgumentException — если указана недопустимая ось

getMinimumSpan

public float getMinimumSpan(int axis)
Определяет минимальную протяжённость этого представления вдоль оси. Реализация возвращает значение, которое Component.getMinimumSize задаёт для интересующей оси.
Переопределяет:
getMinimumSpan в классе View
Параметры:
axis — может быть View.X_AXIS или View.Y_AXIS
Возвращает:
протяжённость, в пределах которой предпочтительно отрисовать представление (>=0). Обычно представлению предлагают отрисоваться в пределах возвращённой протяжённости, но это не гарантируется. Родительское представление может изменить размер или перенести это представление.
Вызывает исключение:
IllegalArgumentException — если указана недопустимая ось
См. также:
  • View.getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)
Определяет максимальную протяжённость этого представления вдоль оси. Реализация возвращает значение, которое Component.getMaximumSize задаёт для интересующей оси.
Переопределяет:
getMaximumSpan в классе View
Параметры:
axis — может быть View.X_AXIS или View.Y_AXIS
Возвращает:
протяжённость, в пределах которой предпочтительно отрисовать представление (>=0). Обычно представлению предлагают отрисоваться в пределах возвращённой протяжённости, но это не гарантируется. Родительское представление может изменить размер или перенести это представление.
Вызывает исключение:
IllegalArgumentException — если указана недопустимая ось
См. также:
  • View.getPreferredSpan(int)

getAlignment

public float getAlignment(int axis)
Определяет требуемое выравнивание этого представления вдоль оси. Реализация возвращает выравнивание встроенного компонента.
Переопределяет:
getAlignment в классе View
Параметры:
axis — может быть View.X_AXIS или View.Y_AXIS
Возвращает:
требуемое выравнивание. Значение должно находиться в диапазоне от 0.0 до 1.0: 0 означает выравнивание по началу координат, а 1.0 — выравнивание на расстоянии полной протяжённости от начала координат. Значение выравнивания 0.5 соответствует центру представления.

setParent

public void setParent(View p)
Задаёт родительское представление для дочернего представления. Родительский элемент вызывает этот метод у дочернего, чтобы сообщить ему, кто является его родителем, предоставляя доступ к таким объектам, как содержащий его Container. Сначала выполняется поведение суперкласса, а затем вызывается createComponent, если параметр родительского представления не равен null и компонент ещё не создан. После этого родительский контейнер встроенного компонента задаётся значением, возвращаемым getContainer. Если параметр родительского представления равен null, это представление очищается, поэтому компонент удаляется из родительского контейнера.

Изменение иерархии компонентов затрагивает блокировку компонента — единственный аспект, небезопасный для иерархии View. Поэтому эта функция выполняется немедленно в потоке обработки событий или ставится в очередь событий, если вызвана из другого потока (при уведомлении об изменении в результате асинхронного обновления).

Переопределяет:
setParent в классе View
Параметры:
p — родительское представление

modelToView

public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
Обеспечивает преобразование координат из пространства модели в пространство представления.
Определено в:
modelToView в классе View
Параметры:
pos — позиция для преобразования >=0
a — выделенная область для отрисовки
b — смещение в сторону предыдущего или следующего символа, представленного смещением, если позиция является границей двух представлений; b будет иметь одно из следующих значений:
  • Position.Bias.Forward
  • Position.Bias.Backward
Возвращает:
возвращает ограничивающий прямоугольник указанной позиции
Вызывает исключение:
BadLocationException — если указанная позиция не соответствует допустимому месту в связанном документе
См. также:
  • View.modelToView(int, Shape, Position.Bias)

viewToModel

public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
Обеспечивает преобразование координат из пространства представления в логическое пространство координат модели.
Определено в:
viewToModel в классе View
Параметры:
x — координата X >=0
y — координата Y >=0
a — выделенная область для отрисовки
bias — возвращаемое смещение
Возвращает:
место в модели, которое наилучшим образом соответствует указанной точке в представлении
См. также:
  • View.viewToModel(float, float, Shape, Position.Bias[])

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, общие сведения, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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