Класс BasicTextUI
- Все реализуемые интерфейсы:
ViewFactory
- Прямые известные подклассы:
BasicEditorPaneUI, BasicTextAreaUI, BasicTextFieldUI, DefaultTextUI
public abstract class BasicTextUI extends TextUI implements ViewFactory
Основа оформления текстовых компонентов. Предоставляет базовые представления редактора и службы контроллера, которые могут быть полезны при создании оформления для расширения JTextComponent.
Большая часть состояния хранится в связанном JTextComponent в виде связанных свойств, а пользовательский интерфейс устанавливает значения по умолчанию для различных свойств. Эта реализация по умолчанию устанавливает значения для всех свойств. Однако обычно реализация LAF делает больше. Как минимум, LAF обычно устанавливает привязки клавиш.
Этот класс также обеспечивает некоторую поддержку параллельной работы, если Document, связанная с JTextComponent, является подклассом AbstractDocument. Доступ к View (или иерархии View) синхронизируется между любым потоком, изменяющим модель, и потоком событий Swing (который, как предполагается, выполняет отрисовку, преобразование координат модели и представления и т. д.). Перед любым обращением к корневому представлению необходимо получить блокировку чтения AbstractDocument и освободить эту блокировку в блоке finally.
Важный метод, который необходимо определить, — это метод getPropertyPrefix(), используемый как основа для ключей, по которым извлекаются значения по умолчанию из UIManager. Строка должна отражать тип TextUI (например, TextField, TextArea и т. д.), не включая часть имени, относящуюся к конкретному LAF (например, Metal, Motif и т. д.).
Для построения представления модели можно использовать одну из следующих стратегий.
- Один из вариантов — просто переопределить в пользовательском интерфейсе интерфейс ViewFactory. По умолчанию сам этот пользовательский интерфейс выступает в роли фабрики реализаций View. Это полезно для простых фабрик. Для этого повторно реализуйте метод
create(Element). - Распространённая стратегия создания более сложных типов документов — реализовать EditorKit так, чтобы он возвращал фабрику. Поскольку EditorKit связывает все необходимые компоненты для поддержки типа документа, фабрика обычно является важной частью этой реализации и должна предоставляться реализацией EditorKit.
Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4 в пакет java.beans добавлена поддержка долгосрочного хранения всех JavaBeans. См. XMLEncoder.
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
BasicTextUI.BasicCaret |
Реализация интерфейса Caret по умолчанию. |
static class |
BasicTextUI.BasicHighlighter |
Реализация интерфейса Highlighter по умолчанию. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
BasicTextUI() |
Создаёт новый пользовательский интерфейс. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
View |
create |
Создаёт представление для элемента. |
View |
create |
Создаёт представление для элемента. |
protected Caret |
createCaret() |
Создаёт объект для каретки. |
protected Highlighter |
createHighlighter() |
Создаёт объект для добавления выделений. |
protected Keymap |
createKeymap() |
Создаёт карту клавиш для текстового компонента и устанавливает в неё все необходимые привязки. |
void |
damageRange |
Вызывает перерисовку части представления, отвечающей за заданную часть модели. |
void |
damageRange |
Вызывает перерисовку части представления, отвечающей за заданную часть модели. |
protected final JTextComponent |
getComponent() |
Получает текстовый компонент, связанный с этой реализацией пользовательского интерфейса. |
EditorKit |
getEditorKit |
Получает EditorKit для пользовательского интерфейса. |
protected String |
getKeymapName() |
Получает имя карты клавиш, которая будет установлена/использоваться по умолчанию для этого пользовательского интерфейса. |
Dimension |
getMaximumSize |
Получает максимальный размер компонента редактора. |
Dimension |
getMinimumSize |
Получает минимальный размер компонента редактора. |
int |
getNextVisualPositionFrom |
Позволяет определить следующее визуально представленное положение модели, в котором можно разместить каретку. |
Dimension |
getPreferredSize |
Получает предпочтительный размер компонента редактора. |
protected abstract String |
getPropertyPrefix() |
Получает имя, используемое в качестве ключа для поиска свойств через UIManager. |
View |
getRootView |
Получает View с областью размещения связанного текстового компонента (то есть корень иерархии), по которому можно пройти, чтобы определить, как модель представлена в пространстве. |
String |
getToolTipText |
Возвращает строку, используемую в качестве всплывающей подсказки в переданном местоположении. |
protected Rectangle |
getVisibleEditorRect() |
Получает область размещения для корневого View. |
protected void |
installDefaults() |
Инициализирует свойства компонента, такие как шрифт, цвет переднего плана, цвет фона, цвет каретки, цвет выделения, цвет выделенного текста, цвет отключённого текста, рамка и поля. |
protected void |
installKeyboardActions() |
Регистрирует действия клавиатуры. |
protected void |
installListeners() |
Устанавливает прослушиватели для пользовательского интерфейса. |
void |
installUI |
Устанавливает пользовательский интерфейс для компонента. |
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() |
Удаляет прослушиватели пользовательского интерфейса. |
void |
uninstallUI |
Удаляет пользовательский интерфейс компонента. |
void |
update |
Суперкласс неконтролируемым образом отрисовывает фон (например, если требуется замостить фон изображением). |
int |
viewToModel |
Устарело. |
int |
viewToModel |
Устарело. |
Методы, объявленные в классе TextUI
getToolTipText2D, modelToView2D, viewToModel2D
Методы, объявленные в классе 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)
- Устанавливает для связанного компонента свойство непрозрачности, если клиентская программа еще не задала его. Благодаря этому будет рисоваться цвет фона компонента.
- Устанавливает для связанного компонента каретку и объект подсветки по умолчанию. Эти свойства устанавливаются, только если их текущие значения равны
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— рисуемый компонент; этот аргумент часто игнорируется, но может использоваться, если объект пользовательского интерфейса не хранит состояние и совместно используется несколькими компонентами - См. также:
paint
public final void paint(Graphics g, JComponent c)
- Переопределено:
-
paintв классеComponentUI - Параметры:
-
g— графический контекст -
c— компонент редактора - См. также:
getPreferredSize
public Dimension getPreferredSize(JComponent c)
- Переопределено:
-
getPreferredSizeв классеComponentUI - Параметры:
-
c— компонент редактора - Возвращает:
- размер
- См. также:
getMinimumSize
public Dimension getMinimumSize(JComponent c)
- Переопределено:
-
getMinimumSizeв классеComponentUI - Параметры:
-
c— компонент редактора - Возвращает:
- размер
- См. также:
getMaximumSize
public Dimension getMaximumSize(JComponent c)
- Переопределено:
-
getMaximumSizeв классеComponentUI - Параметры:
-
c— компонент редактора - Возвращает:
- размер
- См. также:
getVisibleEditorRect
protected Rectangle getVisibleEditorRect()
- Возвращает:
- ограничивающий прямоугольник корневого представления
modelToView
@Deprecated(since="9") public Rectangle modelToView(JTextComponent tc, int pos) throws BadLocationException
TextUI.modelToView2D(JTextComponent, int, Position.Bias)
- Определено в:
-
modelToViewв классеTextUI - Параметры:
-
tc— текстовый компонент, для которого установлен этот пользовательский интерфейс -
pos— локальное положение в модели для преобразования >= 0 - Возвращает:
- координаты в виде прямоугольника; null, если модель не отображается
- Вызывает:
-
BadLocationException— если заданное положение не соответствует допустимому месту в связанном документе - См. также:
modelToView
@Deprecated(since="9") public Rectangle modelToView(JTextComponent tc, int pos, Position.Bias bias) throws BadLocationException
TextUI.modelToView2D(JTextComponent, int, Position.Bias)
- Определено в:
-
modelToViewв классеTextUI - Параметры:
-
tc— текстовый компонент, для которого установлен этот пользовательский интерфейс -
pos— локальное положение в модели для преобразования >= 0 -
bias— смещение для положения - Возвращает:
- координаты в виде прямоугольника; null, если модель не отображается
- Вызывает:
-
BadLocationException— если заданное положение не соответствует допустимому месту в связанном документе - См. также:
viewToModel
@Deprecated(since="9") public int viewToModel(JTextComponent tc, Point pt)
TextUI.viewToModel2D(JTextComponent, Point2D, Position.Bias[])
- Определено в:
-
viewToModelв классеTextUI - Параметры:
-
tc— текстовый компонент, для которого установлен этот пользовательский интерфейс -
pt— положение в представлении для преобразования. Оно должно находиться в той же системе координат, что и события мыши. - Возвращает:
- смещение от начала документа >= 0; -1, если документ не отображается
- См. также:
viewToModel
@Deprecated(since="9") public int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn)
TextUI.viewToModel2D(JTextComponent, Point2D, Position.Bias[])
- Определено в:
-
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 - Параметры:
-
t— текстовый компонент, для которого установлен этот пользовательский интерфейс -
p0— начало диапазона >= 0 -
p1— конец диапазона >= p0 -
p0Bias— смещение первой позиции символа: к предыдущему или следующему символу -
p1Bias— смещение второй позиции символа: к предыдущему или следующему символу
getEditorKit
public EditorKit getEditorKit(JTextComponent tc)
- Определено в:
-
getEditorKitв классеTextUI - Параметры:
-
tc— текстовый компонент, для которого установлен этот пользовательский интерфейс - Возвращает:
- возможности редактора
- См. также:
getRootView
public View getRootView(JTextComponent tc)
Предупреждение: Иерархию View можно обходить, начиная с корневого представления, и выполнять другие действия. Такие действия нельзя защитить так же, как обычные вызовы методов через TextUI. Поэтому для обеспечения корректной работы при параллельном выполнении вызывающая этот метод логика должна самостоятельно позаботиться о синхронизации!
- Определено в:
-
getRootViewв классеTextUI - Параметры:
-
tc— текстовый компонент, для которого установлен этот пользовательский интерфейс - Возвращает:
- представление
- См. также:
getToolTipText
public String getToolTipText(JTextComponent t, Point pt)
- Переопределено:
-
getToolTipTextв классеTextUI - Параметры:
-
t— текстовый компонент, для которого установлен этот пользовательский интерфейс -
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, 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/plaf/basic/BasicTextUI.html
TextUI.modelToView2D(JTextComponent, int, Position.Bias)