Класс BasicTextUI
- Все реализованные интерфейсы:
ViewFactory
- Непосредственные известные подклассы:
-
BasicEditorPaneUI,BasicTextAreaUI,BasicTextFieldUI,DefaultTextUI
public abstract class BasicTextUI extends TextUI implements ViewFactory
Основа визуального оформления текстовых компонентов. Этот класс предоставляет базовые службы представления и управления редактированием, которые могут быть полезны при создании визуального оформления для расширения JTextComponent.
Большинство состояний хранятся в связанных JTextComponent в качестве связанных свойств, и UI устанавливает значения по умолчанию для различных свойств. Это значение по умолчанию будет установлено для всех свойств. Однако, обычно, реализация LAF сделает больше. Как минимум, реализация LAF обычно устанавливает сочетания клавиш.
Этот класс также предоставляет некоторую поддержку конкурентного доступа, если Document , связанный с JTextComponent, является подклассом AbstractDocument. Доступ к представлению (или иерархии представлений) сериализован между любым потоком, изменяющим модель, и потоком Swing событий (который, как ожидается, выполнит отрисовку, выполнит преобразование координат модель/представление и т. д.). Любой доступ к корневому представлению должен сначала получить блокировку чтения для AbstractDocument и освободить эту блокировку в блоке finally.
Важно определить метод getPropertyPrefix(), который используется в качестве основы для ключей, используемых для извлечения значений по умолчанию из UIManager. Строка должна отражать тип TextUI (например, TextField, TextArea и т. д.) без конкретной части имени LAF (например, Metal, Motif и т. д.).
Для построения представления модели можно использовать одну из следующих стратегий.
- Одна из стратегий — просто переопределить интерфейс ViewFactory в UI. По умолчанию, этот UI сам действует как фабрика для реализаций View. Это полезно для простых фабрик. Для этого переопределите метод
create(javax.swing.text.Element). - Распространённая стратегия для создания более сложных типов документов — это предоставление реализации EditorKit фабрики. Поскольку EditorKit связывает все необходимые части для поддержания типа документа, фабрика обычно является важной частью этого и должна создаваться реализацией EditorKit.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans была добавлена в пакет java.beans. См. XMLEncoder.
Краткое описание вложенных классов
| Modifier and Type | Class | Description |
|---|---|---|
static class |
BasicTextUI.BasicCaret |
Реализация по умолчанию интерфейса Caret. |
static class |
BasicTextUI.BasicHighlighter |
Реализация по умолчанию интерфейса Highlighter. |
Краткое описание конструкторов
| Constructor | Description |
|---|---|
BasicTextUI() |
Создаёт новый UI. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
View |
create |
Создаёт представление для элемента. |
View |
create |
Создаёт представление для элемента. |
protected Caret |
createCaret() |
Создаёт объект для использования с курсором. |
protected Highlighter |
createHighlighter() |
Создаёт объект для добавления выделений. |
protected Keymap |
createKeymap() |
Создаёт ключевую карту для использования с текстовым компонентом и устанавливает необходимые привязки в неё. |
void |
damageRange |
Перерисовывает часть представления, отвечающую за заданную часть модели. |
void |
damageRange |
Перерисовывает часть представления, отвечающую за заданную часть модели. |
protected final JTextComponent |
getComponent() |
Получает текстовый компонент, связанный с этим реализацией UI. |
EditorKit |
getEditorKit |
Получает EditorKit для UI. |
protected String |
getKeymapName() |
Получает имя ключевой карты, которая будет установлена/использована по умолчанию для этого UI. |
Dimension |
getMaximumSize |
Получает максимальный размер компонента редактора. |
Dimension |
getMinimumSize |
Получает минимальный размер компонента редактора. |
int |
getNextVisualPositionFrom |
Предоставляет способ определения следующего визуально представленного расположения модели, в которое можно поместить курсор. |
Dimension |
getPreferredSize |
Получает предпочтительный размер компонента редактора. |
protected abstract String |
getPropertyPrefix() |
Получает имя, используемое в качестве ключа для поиска свойств через UIManager. |
View |
getRootView |
Получает представление с распределением связанного текстового компонента (т.е. корень иерархии), которое можно пройти, чтобы определить, как модель представлена в пространстве. |
String |
getToolTipText |
Возвращает строку, используемую в качестве всплывающей подсказки в указанном месте. |
protected Rectangle |
getVisibleEditorRect() |
Получает распределение, которое нужно предоставить корневому представлению. |
protected void |
installDefaults() |
Инициализирует свойства компонента, такие как шрифт, цвет переднего плана, цвет фона, цвет курсора, цвет выделения, цвет выделенного текста, цвет отключенного текста, граница и отступ. |
protected void |
installKeyboardActions() |
Регистрирует действия клавиатуры. |
protected void |
installListeners() |
Устанавливает слушателей для UI. |
void |
installUI |
Устанавливает UI для компонента. |
protected void |
modelChanged() |
Отмечает изменения модели. |
Rectangle |
modelToView |
Устаревшее. |
Rectangle |
modelToView |
Устаревшее. |
final void |
paint |
Рисует интерфейс. |
protected void |
paintBackground |
Рисует фон для представления. |
protected void |
paintSafely |
Безопасно рисует интерфейс, гарантируя, что модель не изменится с точки зрения этого потока. |
protected void |
propertyChange |
Этот метод вызывается при изменении связанного свойства на связанном JTextComponent. |
protected final void |
setView |
Устанавливает текущий корень иерархии представления и вызывает invalidate(). |
protected void |
uninstallDefaults() |
Устанавливает свойства компонента, которые не были явно переопределены, на null. |
protected void |
uninstallKeyboardActions() |
Отменяет регистрацию действий клавиатуры. |
protected void |
uninstallListeners() |
Отменяет установку слушателей для UI. |
void |
uninstallUI |
Отменяет установку UI для компонента. |
void |
update |
Суперкласс рисует фон неконтролируемым образом (т.е. можно захотеть, чтобы изображение было затерто на фоне). |
int |
viewToModel |
Устаревшее. |
int |
viewToModel |
Устаревшее. |
Methods declared in class javax.swing.plaf.TextUI
getToolTipText2D, modelToView2D, viewToModel2D
Methods declared in class javax.swing.plaf.ComponentUI
contains, createUI, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior
Подробное описание конструкторов
BasicTextUI
public BasicTextUI()
Подробное описание методов
createCaret
protected Caret createCaret()
- Возвращает:
- объект курсора
createHighlighter
protected Highlighter createHighlighter()
- Возвращает:
- объект выделения
getKeymapName
protected String getKeymapName()
- Возвращает:
- имя
createKeymap
protected Keymap createKeymap()
Набор привязок, используемых для создания схемы клавиатуры, извлекается из UIManager с использованием ключа, сформированного путём объединения метода getPropertyPrefix() и строки .keyBindings. Ожидается тип JTextComponent.KeyBinding[].
- Возвращает:
- схему клавиатуры
- См. также:
propertyChange
protected void propertyChange(PropertyChangeEvent evt)
- Параметры:
-
evt- событие изменения свойства
getPropertyPrefix
protected abstract String getPropertyPrefix()
- Возвращает:
- имя
installDefaults
protected void installDefaults()
uninstallDefaults
protected void uninstallDefaults()
null. Свойство считается переопределённым, если его текущее значение не является UIResource. installListeners
protected void installListeners()
uninstallListeners
protected void uninstallListeners()
installKeyboardActions
protected void installKeyboardActions()
uninstallKeyboardActions
protected void uninstallKeyboardActions()
paintBackground
protected void paintBackground(Graphics g)
- Параметры:
-
g- контекст графики
getComponent
protected final JTextComponent getComponent()
- Возвращает:
- компонент редактора
modelChanged
protected void modelChanged()
setView
protected final void setView(View v)
- Параметры:
-
v- корневое представление
paintSafely
protected void paintSafely(Graphics g)
- Если компонент помечен как непрозрачный, фон рисуется текущим цветом фона компонента.
- Рисуются выделения (если есть).
- Рисуется иерархия представлений.
- Рисуется курсор.
- Параметры:
-
g- контекст графики
installUI
public void installUI(JComponent c)
- Устанавливает связанный компонент непрозрачным, если свойство opaque ещё не установлено программой клиента. Это заставит компонент нарисовать свой цвет фона.
- Устанавливает в связанном компоненте по умолчанию курсор и выделение. Эти свойства устанавливаются только в том случае, если их текущее значение равно
nullили экземпляруUIResource. - Подключается к редактору и модели. Если модели нет, создаётся модель по умолчанию.
- Создаётся фабрика представлений и иерархия представлений, используемая для представления модели.
- Переопределяет:
-
installUIв классеComponentUI - Параметры:
-
c- компонент редактора - См. также:
uninstallUI
public void uninstallUI(JComponent c)
- Переопределяет:
-
uninstallUIв классеComponentUI - Параметры:
-
c- компонент редактора - См. также:
update
public void update(Graphics g, JComponent c)
ПРИМЕЧАНИЕ: Предок также не потокобезопасен в отрисовке фона, хотя это не проблема с дефолтной отрисовкой.
- Переопределяет:
-
updateв классеComponentUI - Параметры:
-
g- контекстGraphics, в котором рисовать -
c- компонент, который рисуется; этот аргумент часто игнорируется, но может быть использован, если объект UI бессостоятельный и совместно используется несколькими компонентами - См. также:
paint
public final void paint(Graphics g, JComponent c)
- Переопределяет:
-
paintв классеComponentUI - Параметры:
-
g- контекст графики -
c- компонент редактора - См. также:
Получить предпочтительный размер
public Dimension getPreferredSize(JComponent c)
- Переопределяет:
-
getPreferredSizeв классеComponentUI - Параметры:
-
c- компонент редактора - Возвращает:
- размер
- См. также:
Получить минимальный размер
public Dimension getMinimumSize(JComponent c)
- Переопределяет:
-
getMinimumSizeв классеComponentUI - Параметры:
-
c- компонент редактора - Возвращает:
- размер
- См. также:
Получить максимальный размер
public Dimension getMaximumSize(JComponent c)
- Переопределяет:
-
getMaximumSizeв классеComponentUI - Параметры:
-
c- компонент редактора - Возвращает:
- размер
- См. также:
Получить видимый прямоугольник редактора
protected Rectangle getVisibleEditorRect()
- Возвращает:
- прямоугольник границ корневого представления
modelToView
@Deprecated(since="9") public Rectangle modelToView(JTextComponent tc, int pos) throws BadLocationException
- Определено в:
-
modelToViewв классеTextUI - Параметры:
-
tc- компонент текста, для которого установлен этот интерфейс пользовательского интерфейса -
pos- локальная позиция в модели, подлежащая преобразованию >= 0 - Возвращает:
- координаты в виде прямоугольника, null, если модель не отрисована
- Исключения:
-
BadLocationException- если заданная позиция не представляет действительную локацию в связанном документе - См. также:
modelToView
@Deprecated(since="9") public Rectangle modelToView(JTextComponent tc, int pos, Position.Bias bias) throws BadLocationException
- Определено в:
-
modelToViewв классеTextUI - Параметры:
-
tc- компонент текста, для которого установлен этот интерфейс пользовательского интерфейса -
pos- локальная позиция в модели, подлежащая преобразованию >= 0 -
bias- смещение для позиции - Возвращает:
- координаты в виде прямоугольника, null, если модель не отрисована
- Исключения:
-
BadLocationException- если заданная позиция не представляет действительную локацию в связанном документе - См. также:
viewToModel
@Deprecated(since="9") public int viewToModel(JTextComponent tc, Point pt)
- Определено в:
-
viewToModelв классеTextUI - Параметры:
-
tc- компонент текста, для которого установлен этот интерфейс пользовательского интерфейса -
pt- местоположение в представлении, подлежащее преобразованию. Оно должно быть в той же системе координат, что и события мыши. - Возвращает:
- смещение от начала документа >= 0, -1, если не отрисовано
- См. также:
viewToModel
@Deprecated(since="9") public int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn)
- Определено в:
-
viewToModelв классеTextUI - Параметры:
-
tc- компонент текста, для которого установлен этот интерфейс пользовательского интерфейса -
pt- местоположение в представлении, подлежащее преобразованию. Оно должно быть в той же системе координат, что и события мыши. -
biasReturn- заполняется этим методом, чтобы указать, ближе ли заданная точка к предыдущему или следующему символу в модели - Возвращает:
- смещение от начала документа >= 0, -1, если у компонента еще нет положительного размера.
- См. также:
getNextVisualPositionFrom
public int getNextVisualPositionFrom(JTextComponent t, int pos, Position.Bias b, int direction, Position.Bias[] biasRet) throws BadLocationException
- Определено в:
-
getNextVisualPositionFromв классеTextUI - Параметры:
-
t- компонент текста, для которого установлен этот интерфейс пользовательского интерфейса -
pos- позиция для преобразования >= 0 -
b- смещение для позиции -
direction- направление от текущей позиции, которое можно представить как клавиши со стрелками на клавиатуре. Может быть SwingConstants.WEST, SwingConstants.EAST, SwingConstants.NORTH или SwingConstants.SOUTH -
biasRet- массив для хранения смещения для возвращаемой позиции - Возвращает:
- местоположение в модели, которое лучше всего представляет следующую визуальную позицию
- Исключения:
-
BadLocationException- для некорректного расположения в модели документа
damageRange
public void damageRange(JTextComponent tc, int p0, int p1)
- Определено в:
-
damageRangeв классеTextUI - Параметры:
-
tc- компонент текста, для которого установлен этот интерфейс пользовательского интерфейса -
p0- начало диапазона >= 0 -
p1- конец диапазона >= p0 - См. также:
damageRange
public void damageRange(JTextComponent t, int p0, int p1, Position.Bias p0Bias, Position.Bias p1Bias)
- Определено в:
-
damageRangeв классеTextUI - Параметры:
-
p0- начало диапазона >= 0 -
p1- конец диапазона >= p0 -
t- текстовый компонент, для которого установлена эта UI -
p0Bias- сдвиг первой позиции символа, к предыдущему или следующему символу -
p1Bias- сдвиг второй позиции символа, к предыдущему или следующему символу
getEditorKit
public EditorKit getEditorKit(JTextComponent tc)
- Определено в:
-
getEditorKitв классеTextUI - Параметры:
-
tc- текстовый компонент, для которого установлена эта UI - Возвращает:
- возможности редактора
- См. также:
getRootView
public View getRootView(JTextComponent tc)
Предупреждение: Иерархия представлений может быть пройдена от корневого представления, и могут выполняться и другие действия. Действия, выполненные таким образом, не могут быть защищены, как простые вызовы методов через TextUI. Поэтому всякая логика, вызывающая этот метод, должна организовать правильную работу в присутствии конкурентного доступа!
- Определено в:
-
getRootViewв классеTextUI - Параметры:
-
tc- текстовый компонент, для которого установлена эта UI - Возвращает:
- представление
- См. также:
getToolTipText
public String getToolTipText(JTextComponent t, Point pt)
- Переопределяет:
-
getToolTipTextв классеTextUI - Параметры:
-
t- текстовый компонент, для которого установлена эта UI -
pt-Pointуказывающий местоположение, для которого требуется всплывающая подсказка - Возвращает:
Stringсодержащий всплывающую подсказку- С тех пор как:
- 1.4
- См. также:
create
public View create(Element elem)
- Определено в:
-
createв интерфейсеViewFactory - Параметры:
-
elem- элемент - Возвращает:
- представление
- См. также:
create
public View create(Element elem, int p0, int p1)
- Параметры:
-
elem- элемент -
p0- начальный смещение >= 0 -
p1- конечный смещение >= p0 - Возвращает:
- представление
© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/plaf/basic/BasicTextUI.html
TextUI.modelToView2D(JTextComponent, int, Position.Bias)