Класс BasicTextUI
- Все реализуемые интерфейсы:
ViewFactory
- Прямые известные подклассы:
BasicEditorPaneUI, BasicTextAreaUI, BasicTextFieldUI, DefaultTextUI
public abstract class BasicTextUI extends TextUI implements ViewFactory
Основа внешнего вида текстовых компонентов. Этот класс предоставляет базовые службы представления и контроллера редактора, которые могут пригодиться при создании внешнего вида для расширения JTextComponent.
Большая часть состояния хранится в связанной JTextComponent в виде связанных свойств, а пользовательский интерфейс устанавливает значения по умолчанию для различных свойств. Эта реализация по умолчанию задаёт значения для всех свойств. Обычно реализация LAF делает больше. Как минимум, LAF, как правило, устанавливает привязки клавиш.
Этот класс также обеспечивает поддержку многопоточности, если связанная с JTextComponent Document является подклассом 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() |
Возвращает область размещения (то есть выделенный размер) корневого представления. |
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 | Модификатор и тип | Метод | Описание |
|---|---|---|
String |
getToolTipText2D |
Возвращает строку, используемую в качестве всплывающей подсказки в указанном местоположении. |
Rectangle2D |
modelToView2D |
Преобразует заданное местоположение в модели в точку в системе координат представления. |
int |
viewToModel2D |
Обеспечивает отображение координат представления в логические координаты модели. |
Методы, объявленные в классе ComponentUI
contains, createUI, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
contains |
Возвращает true, если указанное местоположение x,y находится внутри области указанного компонента, заданной внешним видом. |
static ComponentUI |
createUI |
Возвращает экземпляр делегата пользовательского интерфейса для указанного компонента. |
Accessible |
getAccessibleChild |
Возвращает дочерний элемент Accessible объекта с индексом i. |
int |
getAccessibleChildrenCount |
Возвращает число доступных дочерних элементов объекта. |
int |
getBaseline |
Возвращает базовую линию. |
Component.BaselineResizeBehavior |
getBaselineResizeBehavior |
Возвращает перечисление, указывающее, как изменяется базовая линия компонента при изменении размера. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в одной из будущих версий. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до тех пор, пока он не будет пробуждён, обычно посредством уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до тех пор, пока он не будет пробуждён, обычно посредством уведомления или прерывания, либо пока не истечёт заданный промежуток реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до тех пор, пока он не будет пробуждён, обычно посредством уведомления или прерывания, либо пока не истечёт заданный промежуток реального времени. |
Подробное описание конструкторов
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— отрисовываемый компонент; этот аргумент часто игнорируется, но может использоваться, если объект UI не содержит состояния и является общим для нескольких компонентов - См. также:
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— текстовый компонент, для которого установлен этот UI -
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— текстовый компонент, для которого установлен этот UI -
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— текстовый компонент, для которого установлен этот UI -
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— текстовый компонент, для которого установлен этот UI -
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— текстовый компонент, для которого установлен этот UI -
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— текстовый компонент, для которого установлен этот UI -
p0— начало диапазона, >= 0 -
p1— конец диапазона, >= p0 - См. также:
damageRange
public void damageRange(JTextComponent t, int p0, int p1, Position.Bias p0Bias, Position.Bias p1Bias)
- Определён в:
-
damageRangeв классеTextUI - Параметры:
-
t— текстовый компонент, для которого установлен этот UI -
p0— начало диапазона, >= 0 -
p1— конец диапазона, >= p0 -
p0Bias— смещение позиции первого символа: в сторону предыдущего или следующего символа -
p1Bias— смещение позиции второго символа: в сторону предыдущего или следующего символа
getEditorKit
public EditorKit getEditorKit(JTextComponent tc)
- Определён в:
-
getEditorKitв классеTextUI - Параметры:
-
tc— текстовый компонент, для которого установлен этот UI - Возвращает:
- возможности редактора
- См. также:
getRootView
public View getRootView(JTextComponent tc)
Предупреждение: Иерархию View можно обходить, начиная с корневого представления, а также выполнять другие действия. Выполняемые таким способом операции нельзя защитить так же, как обычные вызовы методов через 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, 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.
TextUI.modelToView2D(JTextComponent, int, Position.Bias)