Класс ComponentView
- Все реализуемые интерфейсы:
SwingConstants
- Прямые известные подклассы:
FormView, ObjectView
public class ComponentView extends 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
Поля, объявленные в интерфейсе SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ComponentView |
Создает новый объект ComponentView. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected Component |
createComponent() |
Создает компонент, связанный с этим представлением. |
float |
getAlignment |
Определяет желаемое выравнивание этого представления вдоль оси. |
final Component |
getComponent() |
Получает компонент, связанный с представлением. |
float |
getMaximumSpan |
Определяет максимальный размер этого представления вдоль оси. |
float |
getMinimumSpan |
Определяет минимальный размер этого представления вдоль оси. |
float |
getPreferredSpan |
Определяет предпочтительный размер этого представления вдоль оси. |
Shape |
modelToView |
Обеспечивает преобразование координат из системы координат модели в систему координат представления. |
void |
paint |
Фактическая отрисовка выполняется автоматически благодаря тому, что компонент связан со своим родительским контейнером (тем же контейнером, в котором размещено это представление). |
void |
setParent |
Задает родительское представление для дочернего представления. |
int |
viewToModel |
Обеспечивает преобразование координат из системы координат представления в логическую систему координат модели. |
Методы, объявленные в классе 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
Подробное описание конструкторов
ComponentView
public ComponentView(Element elem)
- Параметры:
-
elem— элемент для декорирования
Подробное описание методов
createComponent
protected Component createComponent()
- Возвращает:
- компонент, связанный с этим представлением
getComponent
public final Component getComponent()
- Возвращает:
- компонент, связанный с представлением
paint
public void paint(Graphics g, Shape a)
getPreferredSpan
public float getPreferredSpan(int axis)
- Указано в:
-
getPreferredSpanв классеView - Параметры:
-
axis— может иметь значение View.X_AXIS или View.Y_AXIS - Возвращает:
- размер, в пределах которого желательно отрисовать представление (>=0). Обычно представлению предписывают отрисовываться в возвращенном размере, однако это не гарантируется. Родительское представление может изменить размер этого представления или разбить его.
- Исключения:
-
IllegalArgumentException— если ось недопустима
getMinimumSpan
public float getMinimumSpan(int axis)
- Переопределяет:
-
getMinimumSpanв классеView - Параметры:
-
axis— может иметь значение View.X_AXIS или View.Y_AXIS - Возвращает:
- размер, в пределах которого желательно отрисовать представление (>=0). Обычно представлению предписывают отрисовываться в возвращенном размере, однако это не гарантируется. Родительское представление может изменить размер этого представления или разбить его.
- Исключения:
-
IllegalArgumentException— если ось недопустима - См. также:
getMaximumSpan
public float getMaximumSpan(int axis)
- Переопределяет:
-
getMaximumSpanв классеView - Параметры:
-
axis— может иметь значение View.X_AXIS или View.Y_AXIS - Возвращает:
- размер, в пределах которого желательно отрисовать представление (>=0). Обычно представлению предписывают отрисовываться в возвращенном размере, однако это не гарантируется. Родительское представление может изменить размер этого представления или разбить его.
- Исключения:
-
IllegalArgumentException— если ось недопустима - См. также:
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)
getContainer. Если параметр родительского представления равен null, это означает, что представление удаляется, поэтому компонент удаляется из своего родителя. Изменение иерархии компонентов затрагивает блокировку компонентов — единственный аспект, не защищенный иерархией View. Поэтому эта функция выполняется немедленно, если вызвана в потоке обработки событий, либо помещается в очередь событий, если вызвана из другого потока (при уведомлении об изменении в результате асинхронного обновления).
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— если заданная позиция не соответствует допустимому месту в связанном документе - См. также:
viewToModel
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
- Указано в:
-
viewToModelв классеView - Параметры:
-
x— координата X >=0 -
y— координата Y >=0 -
a— выделенная область для отрисовки -
bias— возвращаемое смещение - Возвращает:
- позиция в модели, которая лучше всего соответствует заданной точке в представлении
- См. также:
© 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/ComponentView.html