Класс ComponentView
- java.lang.Object
-
- javax.swing.text.View
-
- javax.swing.text.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, поддерживающей несколько представлений компонента общей модели.
Поля
Поля, унаследованные от класса 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- выделенная область для отрисовки - Возвращает:
- позиция в модели, которая лучше всего представляет заданную точку в представлении
- См. также:
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.