Класс ComponentView
- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.ComponentView
- Все реализованные интерфейсы:
SwingConstants
- Непосредственные известные подклассы:
-
FormView,ObjectView
public class ComponentView extends View
Декоратор компонента, реализующий интерфейс представления. Весь элемент используется для представления компонента. Это действует как шлюз от представлений View, предназначенных только для отображения, к интерактивным лёгким компонентам (т. е. позволяет встраивать компоненты в иерархию представлений).
Компонент размещается относительно базовой линии текста в соответствии со значением, возвращаемым Component.getAlignmentY. Для компонентов Swing это значение удобно задавать с помощью метода JComponent.setAlignmentY. Например, установка значения 0.75 приведет к тому, что 75 процентов компонента будет находиться выше базовой линии, а 25 процентов — ниже.
Этот класс реализован для выполнения дополнительной работы, необходимой для правильной работы в присутствии нескольких потоков (например, при асинхронном уведомлении об изменениях модели), гарантируя, что все обращения к компонентам выполняются в потоке событий.
Используемый компонент определяется возвращаемым значением метода createComponent. По умолчанию этот метод возвращает компонент, хранящийся в качестве атрибута элемента (вызванного StyleConstants.getComponent). Ограничением этого поведения является то, что компонент не может использоваться более чем одним текстовым компонентом (т. е. с общей моделью). Подклассы могут устранить это ограничение, реализовав createComponent таким образом, чтобы он фактически создавал компонент на основе некоторого вида спецификации, содержащейся в атрибутах. Класс ObjectView в пакете html является примером реализации ComponentView, поддерживающей несколько представлений компонента общей модели.
Поля
Поля, объявленные в классе 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 Конструкторы
| Конструктор | Описание |
|---|---|
ComponentView(Element elem) | Создаёт новый объект ComponentView. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected Component | createComponent() | Создать компонент, связанный с этим представлением. |
float | getAlignment(int axis) | Определяет желаемое выравнивание для этого представления вдоль оси. |
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) | Обеспечивает отображение из координатного пространства представления в логическое координатное пространство модели. |
Методы, объявленные в классе javax.swing.text.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 Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
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(java.awt.Graphics, java.awt.Shape)
getPreferredSpan
public float getPreferredSpan(int axis)
Определяет предпочтительный размер этого представления по оси. Эта реализация возвращает значение, возвращаемое Component.getPreferredSize по интересующей оси.
- Определено в:
-
getPreferredSpanв классеView - Параметры:
-
axis- может быть либо View.X_AXIS, либо View.Y_AXIS - Возвращает:
- размер, который представление хотело бы отобразить >=0. Обычно представление получает указание отображаться в указанном размере, хотя гарантий нет. Родительский элемент может изменить размер или разбить представление.
- Исключения:
-
IllegalArgumentException- для неверной оси - См. также:
View.getPreferredSpan(int)
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)
Устанавливает родительское представление для дочернего представления. Родительский элемент вызывает этот метод на дочернем элементе, чтобы указать его родителя, предоставляя представлению доступ к родительскому контейнеру. Сначала выполняется поведение суперкласса, за которым следует вызов createComponent, если родительское представление не равно null и компонент ещё не создан. Затем родительский элемент встроенного компонента устанавливается в значение, возвращённое getContainer. Если родительское представление равно null, это представление удаляется, и поэтому компонент удаляется из родительского элемента.
Изменение иерархии компонентов затронет блокировку компонента, что является единственной вещью, которая не защищена иерархией представлений. Поэтому эта функция выполняется немедленно, если она находится на потоке событий, или помещается в очередь событий, если вызвана из другого потока (уведомление об изменении из асинхронного обновления).
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, java.awt.Shape, javax.swing.text.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, java.awt.Shape, javax.swing.text.Position.Bias[])
© 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/ComponentView.html