Класс 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.
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
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() |
Возвращает текстовый компонент, связанный с этим представлением UI. |
EditorKit |
getEditorKit |
Возвращает EditorKit для интерфейса пользователя. |
protected String |
getKeymapName() |
Возвращает имя мапы клавиш, которая будет установлена/использоваться по умолчанию для этого интерфейса пользователя. |
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() |
Устанавливает слушатели для интерфейса пользователя. |
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 |
Устаревший. |
Методы, объявленные в классе javax.swing.plaf.TextUI
getToolTipText2D, modelToView2D, viewToModel2D
Методы, объявленные в классе 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()
- См. также:
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- контекст отрисовки -
c- компонент, который рисуется; этот аргумент часто игнорируется, но может использоваться, если объект интерфейса пользователя не имеет состояния и используется несколькими компонентами - См. также:
paint
public final void paint(Graphics g, JComponent c)
- Overrides:
-
paintв классеComponentUI - Параметры:
-
g— контекст графики -
c— компонент редактора - См. также:
getPreferredSize
public Dimension getPreferredSize(JComponent c)
- Overrides:
-
getPreferredSizeв классеComponentUI - Параметры:
-
c— компонент редактора - Возвращает:
- размер
- См. также:
getMinimumSize
public Dimension getMinimumSize(JComponent c)
- Overrides:
-
getMinimumSizeв классеComponentUI - Параметры:
-
c— компонент редактора - Возвращает:
- размер
- См. также:
getMaximumSize
public Dimension getMaximumSize(JComponent c)
- Overrides:
-
getMaximumSizeв классеComponentUI - Параметры:
-
c— компонент редактора - Возвращает:
- размер
- См. также:
getVisibleEditorRect
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)
- Specified by:
-
damageRangein classTextUI - Parameters:
-
tc- текстовый компонент, для которого установлено это пользовательское интерфейсное представление -
p0- начало диапазона >= 0 -
p1- конец диапазона >= p0 - See Also:
damageRange
public void damageRange(JTextComponent t, int p0, int p1, Position.Bias p0Bias, Position.Bias p1Bias)
- Specified by:
-
damageRangein classTextUI - Parameters:
-
t- текстовый компонент, для которого установлено это пользовательское интерфейсное представление -
p0- начало диапазона >= 0 -
p1- конец диапазона >= p0 -
p0Bias- смещение первой позиции символа, в сторону предыдущего или следующего символа -
p1Bias- смещение второй позиции символа, в сторону предыдущего или следующего символа
getEditorKit
public EditorKit getEditorKit(JTextComponent tc)
- Specified by:
-
getEditorKitin classTextUI - Parameters:
-
tc- текстовый компонент, для которого установлено это пользовательское интерфейсное представление - Returns:
- возможности редактора
- See Also:
getRootView
public View getRootView(JTextComponent tc)
Предупреждение: Иерархия представлений может быть пройдена от корневого представления, и могут выполняться и другие действия. Действия, выполняемые таким образом, не могут быть защищены, как простые вызовы методов через TextUI. Поэтому любая логика, вызывающая этот метод, должна обеспечить правильную работу в условиях одновременного доступа!
- Specified by:
-
getRootViewin classTextUI - Parameters:
-
tc- текстовый компонент, для которого установлено это пользовательское интерфейсное представление - Returns:
- представление
- See Also:
getToolTipText
public String getToolTipText(JTextComponent t, Point pt)
- Overrides:
-
getToolTipTextin classTextUI - Parameters:
-
t- текстовый компонент, для которого установлено это пользовательское интерфейсное представление -
pt- точка, определяющая местоположение, для которого требуется всплывающая подсказка - Returns:
- строка, содержащая всплывающую подсказку
- Since:
- 1.4
- See Also:
create
public View create(Element elem)
- Specified by:
-
createin interfaceViewFactory - Parameters:
-
elem- элемент - Returns:
- представление
- See Also:
create
public View create(Element elem, int p0, int p1)
- Parameters:
-
elem- элемент -
p0- начальный смещение >= 0 -
p1- конечный смещение >= p0 - Returns:
- представление
© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/plaf/basic/BasicTextUI.html
TextUI.modelToView2D(JTextComponent, int, Position.Bias)