Spec-Zone.ru › OpenJDK 8

Класс BasicTextUI

  • java.lang.Object
    • javax.swing.plaf.ComponentUI
      • javax.swing.plaf.TextUI
        • javax.swing.plaf.basic.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 и т. д.).

Для построения представления модели можно использовать одну из следующих стратегий.

  1. Одна из стратегий заключается в простом переопределении интерфейса ViewFactory в UI. По умолчанию этот UI сам выступает в качестве фабрики для реализаций View. Это полезно для простых фабрик. Для этого переопределите метод create(javax.swing.text.Element).
  2. Распространённой стратегией для создания более сложных типов документов является предоставление реализации EditorKit фабрики. Поскольку EditorKit связывает все необходимые части для поддержания типа документа, фабрика обычно является важной частью этого и должна создаваться реализацией EditorKit.

Предупреждение: Сериализованные объекты этого класса не будут совместимы с будущими выпусками Swing. Текущая поддержка сериализации подходит для краткосрочного хранения или RMI между приложениями, использующими одну и ту же версию Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans™ была добавлена в пакет java.beans. См. XMLEncoder.

Вложенные классы

Модификатор и тип Класс и описание
static class  BasicTextUI.BasicCaret
static class  BasicTextUI.BasicHighlighter

Краткое описание конструкторов

Конструктор и описание
BasicTextUI()

Создаёт новый UI.

Краткое описание методов

Модификатор и тип Метод и описание
View create(Element elem)

Создаёт представление для элемента.

View create(Element elem, int p0, int p1)

Создаёт представление для элемента.

protected Caret createCaret()

Создаёт объект для использования с курсором.

protected Highlighter createHighlighter()

Создаёт объект для добавления выделений.

protected Keymap createKeymap()

Создаёт карту сочетаний клавиш для использования с текстовым компонентом и устанавливает необходимые сочетания клавиш в неё.

void damageRange(JTextComponent tc, int p0, int p1)

Перерисовывает часть представления, отвечающую за заданную часть модели.

void damageRange(JTextComponent t, int p0, int p1, Position.Bias p0Bias, Position.Bias p1Bias)

Перерисовывает часть представления, отвечающую за заданную часть модели.

protected JTextComponent getComponent()

Получает текстовый компонент, связанный с этой реализацией UI.

EditorKit getEditorKit(JTextComponent tc)

Получает EditorKit для UI.

protected String getKeymapName()

Получает имя карты сочетаний клавиш, которая будет устанавливаться/использоваться по умолчанию для этого UI.

Dimension getMaximumSize(JComponent c)

Получает максимальный размер компонента редактора.

Dimension getMinimumSize(JComponent c)

Получает минимальный размер компонента редактора.

int getNextVisualPositionFrom(JTextComponent t, int pos, Position.Bias b, int direction, Position.Bias[] biasRet)

Предоставляет способ определения следующего визуально представленного расположения модели, в которое можно поместить курсор.

Dimension getPreferredSize(JComponent c)

Получает предпочтительный размер компонента редактора.

protected abstract String getPropertyPrefix()

Получает имя, используемое в качестве ключа для поиска свойств через UIManager.

View getRootView(JTextComponent tc)

Получает представление с размещением соответствующего текстового компонента (т. е.

String getToolTipText(JTextComponent t, Point pt)

Возвращает строку, которая будет использоваться в качестве всплывающей подсказки в указанном месте.

protected Rectangle getVisibleEditorRect()

Получает размещение для корневого представления.

protected void installDefaults()

Инициализирует свойства компонента, такие как шрифт, цвет текста, цвет фона, цвет курсора, цвет выделения, цвет выбранного текста, цвет отключённого текста и цвет рамки.

protected void installKeyboardActions()
protected void installListeners()

Устанавливает слушателей для UI.

void installUI(JComponent c)

Устанавливает UI для компонента.

protected void modelChanged()

Флаги изменений модели.

Rectangle modelToView(JTextComponent tc, int pos)

Преобразует заданное расположение в модели в расположение в системе координат представления.

Rectangle modelToView(JTextComponent tc, int pos, Position.Bias bias)

Преобразует заданное расположение в модели в расположение в системе координат представления.

void paint(Graphics g, JComponent c)

Отображает интерфейс.

protected void paintBackground(Graphics g)

Отображает фон для представления.

protected void paintSafely(Graphics g)

Безопасно отображает интерфейс с гарантией, что модель не изменится с точки зрения этого потока.

protected void propertyChange(PropertyChangeEvent evt)

Этот метод вызывается при изменении связанного свойства на связанном JTextComponent.

protected void setView(View v)

Устанавливает текущий корень иерархии представления и вызывает invalidate().

protected void uninstallDefaults()

Устанавливает свойства компонента, которые не были явно переопределены, на null.

protected void uninstallKeyboardActions()
protected void uninstallListeners()

Отменяет установку слушателей для UI.

void uninstallUI(JComponent c)

Отменяет установку UI для компонента.

void update(Graphics g, JComponent c)

Предок отображает фон неконтролируемым способом (т. е.

int viewToModel(JTextComponent tc, Point pt)

Преобразует заданное место в системе координат представления в ближайшее соответствующее расположение в модели.

int viewToModel(JTextComponent tc, Point pt, Position.Bias[] biasReturn)

Преобразует заданное место в системе координат представления в ближайшее соответствующее расположение в модели.

Методы, унаследованные от класса javax.swing.plaf.ComponentUI

contains, createUI, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Конструкторы

BasicTextUI

public BasicTextUI()

Создаёт новый интерфейс.

Методы

createCaret

protected Caret createCaret()

Создаёт объект для курсора. По умолчанию создаётся экземпляр BasicCaret. Этот метод можно переопределить, чтобы использовать что-то другое, что реализует интерфейс InputPosition или подкласс JCaret.

Возвращает:
объект курсора

createHighlighter

protected Highlighter createHighlighter()

Создаёт объект для добавления выделений. По умолчанию создаётся экземпляр BasicHighlighter. Этот метод можно переопределить, чтобы использовать что-то другое, что реализует интерфейс Highlighter или подкласс DefaultHighlighter.

Возвращает:
выделитель

getKeymapName

protected String getKeymapName()

Получает имя раскладки клавиатуры, которая будет установлена/использоваться по умолчанию для данного интерфейса. Реализовано для создания имени на основе имени класса. Имя — это имя класса с удалённым префиксом пакета.

Возвращает:
имя

createKeymap

protected Keymap createKeymap()

Создаёт раскладку клавиатуры для текстового компонента и устанавливает необходимые привязки в неё. По умолчанию раскладка клавиатуры общая для всех экземпляров этого типа TextUI. Раскладка клавиатуры имеет имя, определённое методом getKeymapName. Если раскладка клавиатуры не найдена, используется DEFAULT_KEYMAP из JTextComponent.

Набор привязок, используемых для создания раскладки клавиатуры, извлекается из UIManager с помощью ключа, сформированного путём объединения метода getPropertyPrefix() и строки .keyBindings. Ожидается тип JTextComponent.KeyBinding[].

Возвращает:
раскладку клавиатуры
См. также:
getKeymapName(), JTextComponent

propertyChange

protected void propertyChange(PropertyChangeEvent evt)

Этот метод вызывается при изменении связанного свойства в ассоциированном JTextComponent. Это крючок, который реализации UI могут изменить, чтобы отразить, как интерфейс отображает связанные свойства подклассов JTextComponent. Реализовано так, что ничего не делает (т.е. ответы на свойства в самом JTextComponent обрабатываются до вызова этого метода). Эта реализация обновляет фон текстового компонента, если изменяются состояние редактируемости и/или состояния включения.

Параметры:
evt - событие изменения свойства

getPropertyPrefix

protected abstract String getPropertyPrefix()

Получает имя, используемое в качестве ключа для поиска свойств через UIManager. Это используется в качестве префикса ко всем стандартным текстовым свойствам.

Возвращает:
имя

installDefaults

protected void installDefaults()

Инициализирует свойства компонента, такие как шрифт, цвет переднего плана, цвет фона, цвет курсора, цвет выделения, цвет выделенного текста, цвет отключённого текста и цвет рамки. Свойства шрифт, цвет переднего плана и цвет фона устанавливаются только если их текущее значение равно null или UIResource, остальные свойства устанавливаются, если текущее значение равно null.

См. также:
uninstallDefaults(), installUI(javax.swing.JComponent)

uninstallDefaults

protected void uninstallDefaults()

Устанавливает свойства компонента, которые не были явно переопределены, в значение null. Свойство считается переопределённым, если его текущее значение не является UIResource.

См. также:
installDefaults(), uninstallUI(javax.swing.JComponent)

installListeners

protected void installListeners()

Устанавливает слушатели для интерфейса.

uninstallListeners

protected void uninstallListeners()

Удаляет слушателей для интерфейса.

installKeyboardActions

protected void installKeyboardActions()

uninstallKeyboardActions

protected void uninstallKeyboardActions()

paintBackground

protected void paintBackground(Graphics g)

Рисует фон для представления. Это будет вызвано только в том случае, если isOpaque() для ассоциированного компонента равно true. По умолчанию рисуется цвет фона компонента.

Параметры:
g - контекст графики

getComponent

protected final JTextComponent getComponent()

Получает текстовый компонент, связанный с этой реализацией UI. Он будет null до установки интерфейса.

Возвращает:
компонент редактора

modelChanged

protected void modelChanged()

Помечает изменения модели. Вызывается всякий раз, когда модель изменяется. Реализуется для перестройки иерархии представления для отображения корневого элемента по умолчанию связанной модели.

setView

protected final void setView(View v)

Устанавливает текущий корень иерархии представления и вызывает invalidate(). Если были какие-либо дочерние компоненты, они будут удалены (т.е. предполагается, что они пришли из вложенных в представления компонентов).

Параметры:
v - корневое представление

paintSafely

protected void paintSafely(Graphics g)

Безопасно рисует интерфейс с гарантией, что модель не изменится с точки зрения этого потока во время отрисовки. Делает следующее: отрисовка от заднего плана к переднему.

  1. Если компонент отмечен как непрозрачный, фон рисуется в текущем цвете фона компонента.
  2. Рисуются выделения (если есть).
  3. Рисуется иерархия представлений.
  4. Рисуется курсор.

Параметры:
g - контекст графики

installUI

public void installUI(JComponent c)

Устанавливает UI для компонента. Делает следующее.

  1. Устанавливает ассоциированный компонент как непрозрачный, если свойство opaque ещё не было установлено программой-клиентом. Это заставит компонент нарисовать свой цвет фона.
  2. Устанавливает по умолчанию курсор и выделение в ассоциированный компонент. Эти свойства устанавливаются только если их текущее значение равно null или экземпляру UIResource.
  3. Подключается к редактору и модели. Если модели нет, создаётся по умолчанию.
  4. Создаёт фабрику представлений и иерархию представлений, используемую для представления модели.

Переопределяет:
installUI в классе ComponentUI
Параметры:
c - компонент редактора
См. также:
ComponentUI.installUI(javax.swing.JComponent)

uninstallUI

public void uninstallUI(JComponent c)

Удаляет UI для компонента. Это удаляет слушателей, удаляет выделение, удаляет представления и обнуляет раскладку клавиатуры.

Переопределяет:
uninstallUI в классе ComponentUI
Параметры:
c - компонент редактора
См. также:
ComponentUI.uninstallUI(javax.swing.JComponent)

update

public void update(Graphics g,
                   JComponent c)

Предок рисует фон неконтролируемым способом (например, можно захотеть, чтобы изображение было выложенно в фоне). Чтобы предотвратить это от двойного рисования, этот метод переопределен для простого рисования.

ПРИМЕЧАНИЕ: Предок также не потокобезопасен в рендеринге фона, хотя в стандартном рендеринге это не проблема.

Переопределяет:
update в классе ComponentUI
Параметры:
g - контекст, в котором необходимо рисовать
c - компонент, который рисуется; этот аргумент часто игнорируется, но может быть использован, если объект интерфейса бессостоятелен и используется несколькими компонентами
См. также:
ComponentUI.paint(java.awt.Graphics, javax.swing.JComponent), JComponent.paintComponent(java.awt.Graphics)

paint

public final void paint(Graphics g,
                        JComponent c)

Рисует интерфейс. Это перенаправляется в метод paintSafely с гарантией, что модель не изменится с точки зрения этого потока во время отрисовки (если связанная модель происходит от AbstractDocument). Это позволяет модели потенциально обновляться асинхронно.

Переопределяет:
paint в классе ComponentUI
Параметры:
g - контекст графики
c - компонент редактора
См. также:
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)

getPreferredSize

public Dimension getPreferredSize(JComponent c)

Получает предпочтительный размер для компонента редактора. Если компоненту был задан размер до получения этого запроса, размер иерархии представлений будет изменён в соответствии с размером компонента перед запросом предпочтительного размера иерархии представлений. Это позволяет отформатированным представлениям отформатироваться в соответствии с текущим размером компонента перед ответом на запрос. Другие представления не заботятся о текущем отформатированном размере и дают тот же ответ в любом случае.

Переопределяет:
getPreferredSize в классе ComponentUI
Параметры:
c - компонент редактора
Возвращает:
размер
См. также:
JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)

getMinimumSize

public Dimension getMinimumSize(JComponent c)

Получает минимальный размер для компонента редактора.

Переопределяет:
getMinimumSize в классе ComponentUI
Параметры:
c - компонент редактора
Возвращает:
размер
См. также:
JComponent.getMinimumSize(), LayoutManager.minimumLayoutSize(java.awt.Container), ComponentUI.getPreferredSize(javax.swing.JComponent)

getMaximumSize

public Dimension getMaximumSize(JComponent c)

Получает максимальный размер для компонента редактора.

Переопределяет:
getMaximumSize в классе ComponentUI
Параметры:
c - компонент редактора
Возвращает:
размер
См. также:
JComponent.getMaximumSize(), LayoutManager2.maximumLayoutSize(java.awt.Container)

getVisibleEditorRect

protected Rectangle getVisibleEditorRect()

Получает выделение для корневого представления. Из-за ряда исторических событий метод неудачно назван. Прямоугольник, возвращаемый методом, не имеет никакого отношения к видимостью. Компонент должен иметь ненулевой положительный размер для вычисления этого преобразования.

Возвращает:
прямоугольник границ корневого представления

modelToView

public Rectangle modelToView(JTextComponent tc,
                             int pos)
                      throws BadLocationException

Преобразует заданную позицию в модели в место в системе координат представления. Компонент должен иметь ненулевой положительный размер для вычисления этого преобразования.

Определено в:
modelToView в классе TextUI
Параметры:
tc - компонент текста, для которого установлен этот пользовательский интерфейс
pos - локальная позиция в модели для преобразования >= 0
Возвращает:
координаты в виде прямоугольника, null, если модель не отрисована
Исключения:
BadLocationException - если заданная позиция не представляет допустимую позицию в связанном документе
См. также:
TextUI.modelToView(javax.swing.text.JTextComponent, int)

modelToView

public Rectangle modelToView(JTextComponent tc,
                             int pos,
                             Position.Bias bias)
                      throws BadLocationException

Преобразует заданную позицию в модели в место в системе координат представления. Компонент должен иметь ненулевой положительный размер для вычисления этого преобразования.

Определено в:
modelToView в классе TextUI
Параметры:
tc - компонент текста, для которого установлен этот пользовательский интерфейс
pos - локальная позиция в модели для преобразования >= 0
Возвращает:
координаты в виде прямоугольника, null, если модель не отрисована
Исключения:
BadLocationException - если заданная позиция не представляет допустимую позицию в связанном документе
См. также:
TextUI.modelToView(javax.swing.text.JTextComponent, int)

viewToModel

public int viewToModel(JTextComponent tc,
                       Point pt)

Преобразует заданное место в системе координат представления в ближайшую репрезентативную позицию в модели. Компонент должен иметь ненулевой положительный размер для вычисления этого преобразования.

Определено в:
viewToModel в классе TextUI
Параметры:
tc - компонент текста, для которого установлен этот пользовательский интерфейс
pt - позиция в представлении для преобразования. Она должна быть в той же системе координат, что и события мыши.
Возвращает:
смещение от начала документа >= 0, -1, если не отрисовано
См. также:
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)

viewToModel

public int viewToModel(JTextComponent tc,
                       Point pt,
                       Position.Bias[] biasReturn)

Преобразует заданное место в системе координат представления в ближайшую репрезентативную позицию в модели. Компонент должен иметь ненулевой положительный размер для вычисления этого преобразования.

Определено в:
viewToModel в классе TextUI
Параметры:
tc - компонент текста, для которого установлен этот пользовательский интерфейс
pt - позиция в представлении для преобразования. Она должна быть в той же системе координат, что и события мыши.
biasReturn - заполняется этим методом для указания того, ближе ли заданная точка к предыдущему или следующему символу в модели
Возвращает:
смещение от начала документа >= 0, -1, если компонент еще не имеет положительного размера.
См. также:
TextUI.viewToModel(javax.swing.text.JTextComponent, java.awt.Point)

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
См. также:
TextUI.damageRange(javax.swing.text.JTextComponent, int, int)

damageRange

public void damageRange(JTextComponent t,
                        int p0,
                        int p1,
                        Position.Bias p0Bias,
                        Position.Bias p1Bias)

Перерисовывает часть представления, отвечающую за заданную часть модели.

Определено в:
damageRange в классе TextUI
Параметры:
p0 - начало диапазона >= 0
p1 - конец диапазона >= p0

getEditorKit

public EditorKit getEditorKit(JTextComponent tc)

Получает EditorKit для пользовательского интерфейса.

Определено в:
getEditorKit в классе TextUI
Параметры:
tc - компонент текста, для которого установлен этот пользовательский интерфейс
Возвращает:
возможности редактора
См. также:
TextUI.getEditorKit(javax.swing.text.JTextComponent)

getRootView

public View getRootView(JTextComponent tc)

Получает представление с выделением связанного компонента текста (т.е. корень иерархии), которое можно пройти, чтобы определить, как модель представлена пространственно.

ПРИМЕЧАНИЕ:Иерархия представлений может быть пройдена от корневого представления, и могут быть выполнены и другие операции. Операции, выполненные таким образом, не могут быть защищены, как простые вызовы методов через TextUI. Поэтому, правильная работа при наличии одновременного доступа должна быть организована любой логикой, вызывающей этот метод!

Определено в:
getRootView в классе TextUI
Параметры:
tc - компонент текста, для которого установлен этот пользовательский интерфейс
Возвращает:
представление
См. также:
TextUI.getRootView(javax.swing.text.JTextComponent)

getToolTipText

public String getToolTipText(JTextComponent t,
                             Point pt)

Возвращает строку, используемую в качестве всплывающей подсказки в указанной позиции. Метод пересылает его в корневое представление.

Переопределяет:
getToolTipText в классе TextUI
С:
1.4
См. также:
JTextComponent.getToolTipText(java.awt.event.MouseEvent), View.getToolTipText(float, float, java.awt.Shape)

create

public View create(Element elem)

Создаёт представление для элемента. Если подкласс хочет напрямую реализовать фабрику, производящую представления, он должен переопределить этот метод. По умолчанию просто возвращает null, указывая, что не может представить элемент.

Определено в:
create в интерфейсе ViewFactory
Параметры:
elem - элемент
Возвращает:
представление
См. также:
View

create

public View create(Element elem,
                   int p0,
                   int p1)

Создаёт представление для элемента. Если подкласс хочет напрямую реализовать фабрику, производящую представления, он должен переопределить этот метод. По умолчанию просто возвращает null, указывая, что не может представить часть элемента.

Параметры:
elem - элемент
p0 - начальное смещение >= 0
p1 - конечное смещение >= p0
Возвращает:
представление

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API