Spec-Zone.ru › OpenJDK 27

Класс DefaultCaret

java.lang.Object
java.awt.geom.RectangularShape
java.awt.geom.Rectangle2D
java.awt.Rectangle
javax.swing.text.DefaultCaret
Все реализуемые интерфейсы:
FocusListener, MouseListener, MouseMotionListener, Shape, Serializable, Cloneable, EventListener, Caret
Прямые известные подклассы:
BasicTextUI.BasicCaret
public class DefaultCaret extends Rectangle implements Caret, FocusListener, MouseListener, MouseMotionListener
Реализация Caret по умолчанию. Каретка отображается в виде вертикальной линии цвета, заданного свойством CaretColor связанного компонента JTextComponent. Она может мигать с частотой, заданной свойством BlinkRate.

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

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

По умолчанию для отображения выделения используется Highlighter, связанный с текстовым компонентом. Внешний вид выделения можно настроить, передав отрисовщик, используемый для подсветки. По умолчанию применяется отрисовщик, который отображает сплошной цвет, заданный в связанном текстовом компоненте свойством SelectionColor. Это можно легко изменить, переопределив метод getSelectionPainter.

Настроить внешний вид каретки можно, переопределив метод paint. Если метод paint изменен, следует также переопределить метод damage, чтобы вызвать перерисовку области, необходимой для отображения каретки. Каретка расширяет класс Rectangle, который используется для хранения ограничивающей рамки последнего отображения каретки. Это позволяет каретке безопасно выполнять перерисовку в потоке при перемещении, не вызывая modelToView, поведение которого нестабильно между обновлениями модели и исправлением представления (то есть порядок вызова DocumentListeners не гарантируется).

Магическая позиция каретки устанавливается в null при изменении положения каретки. Для определения нового местоположения (после изменения каретки) используется таймер. Когда таймер срабатывает, если магическая позиция каретки по-прежнему равна null, ей присваивается текущее положение каретки. Любые действия, изменяющие положение каретки и требующие сохранения магической позиции, должны запомнить магическую позицию, изменить курсор, а затем восстановить исходное значение магической позиции. Это позволяет учитывать ее только действиям, которым необходимо сохранять магическую позицию (например, перемещение вверх или вниз).

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

См. также:
  • Caret

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в классе Rectangle2D

Rectangle2D.Double, Rectangle2D.Float
Модификатор и тип Класс Описание
static class  Rectangle2D.Double
Класс Double определяет прямоугольник, заданный координатами типа double.
static class  Rectangle2D.Float
Класс Float определяет прямоугольник, заданный координатами типа float.

Краткое описание полей

Модификатор и тип Поле Описание
static final int ALWAYS_UPDATE
Указывает, что положение каретки должно всегда обновляться в соответствии с изменениями документа, независимо от того, выполняются ли обновления документа в потоке обработки событий.
protected ChangeEvent changeEvent
Событие изменения модели.
protected EventListenerList listenerList
Список слушателей событий.
static final int NEVER_UPDATE
Указывает, что каретка должна оставаться в том же абсолютном положении в документе независимо от любых обновлений документа, за исключением случая, когда из-за удаления длина документа становится меньше текущего положения каретки.
static final int UPDATE_WHEN_ON_EDT
Указывает, что положение каретки обновляется только при изменении документа в потоке обработки событий.

Поля, объявленные в классе Rectangle

height, width, x, y
Модификатор и тип Поле Описание
int height
Высота Rectangle.
int width
Ширина Rectangle.
int x
Координата X верхнего левого угла Rectangle.
int y
Координата Y верхнего левого угла Rectangle.

Поля, объявленные в классе Rectangle2D

OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP
Модификатор и тип Поле Описание
static final int OUT_BOTTOM
Битовая маска, указывающая, что точка находится ниже этого Rectangle2D.
static final int OUT_LEFT
Битовая маска, указывающая, что точка находится левее этого Rectangle2D.
static final int OUT_RIGHT
Битовая маска, указывающая, что точка находится правее этого Rectangle2D.
static final int OUT_TOP
Битовая маска, указывающая, что точка находится выше этого Rectangle2D.

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

Конструктор Описание
DefaultCaret()
Создает каретку по умолчанию.

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

Модификатор и тип Метод Описание
void addChangeListener(ChangeListener l)
Добавляет слушателя для отслеживания изменений положения каретки.
protected void adjustVisibility(Rectangle nloc)
При необходимости прокручивает связанное представление, чтобы каретка стала видимой.
protected void damage(Rectangle r)
Повреждает область вокруг каретки, чтобы вызвать её перерисовку в новом месте.
void deinstall(JTextComponent c)
Вызывается при удалении пользовательского интерфейса из интерфейса JTextComponent.
boolean equals(Object obj)
Сравнивает этот объект с указанным объектом.
protected void fireStateChanged()
Уведомляет всех слушателей, зарегистрировавших интерес к уведомлениям о событиях этого типа.
void focusGained(FocusEvent e)
Вызывается, когда компонент, содержащий каретку, получает фокус.
void focusLost(FocusEvent e)
Вызывается, когда компонент, содержащий каретку, теряет фокус.
int getBlinkRate()
Возвращает частоту мигания каретки.
ChangeListener[] getChangeListeners()
Возвращает массив всех слушателей изменений, зарегистрированных для этой каретки.
protected final JTextComponent getComponent()
Возвращает компонент текстового редактора, к которому привязана эта каретка.
int getDot()
Получает текущее положение каретки.
Position.Bias getDotBias()
Возвращает смещение положения каретки.
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
Возвращает массив всех объектов, зарегистрированных в данный момент как FooListeners для этой каретки.
Point getMagicCaretPosition()
Получает сохранённое положение каретки.
int getMark()
Получает текущее положение метки.
Position.Bias getMarkBias()
Возвращает смещение метки.
protected Highlighter.HighlightPainter getSelectionPainter()
Возвращает средство рисования для Highlighter.
int getUpdatePolicy()
Возвращает политику перемещения каретки при обновлении документа.
void install(JTextComponent c)
Вызывается при установке пользовательского интерфейса в интерфейс JTextComponent.
boolean isActive()
Определяет, активна ли в данный момент каретка.
boolean isSelectionVisible()
Проверяет, видно ли текущее выделение.
boolean isVisible()
Указывает, видна ли в данный момент каретка.
void mouseClicked(MouseEvent e)
Вызывается при щелчке мышью.
void mouseDragged(MouseEvent e)
Перемещает каретку в соответствии с текущим положением указателя мыши.
void mouseEntered(MouseEvent e)
Вызывается при входе мыши в область.
void mouseExited(MouseEvent e)
Вызывается при выходе мыши из области.
void mouseMoved(MouseEvent e)
Вызывается при перемещении мыши.
void mousePressed(MouseEvent e)
Если нажата кнопка 1, этот метод запрашивает фокус для связанного текстового компонента и задаёт положение каретки.
void mouseReleased(MouseEvent e)
Вызывается при отпускании кнопки мыши.
protected void moveCaret(MouseEvent e)
Пытается переместить каретку в координаты события мыши с помощью viewToModel().
void moveDot(int dot)
Перемещает каретку в указанное положение с прямым смещением.
void moveDot(int dot, Position.Bias dotBias)
Перемещает каретку в указанное положение с заданным смещением.
void paint(Graphics g)
Отображает каретку в виде вертикальной линии.
protected void positionCaret(MouseEvent e)
Пытается задать положение каретки по координатам события мыши с помощью viewToModel().
void removeChangeListener(ChangeListener l)
Удаляет слушателя, отслеживавшего изменения положения каретки.
protected final void repaint()
Вызывает отрисовку каретки.
void setBlinkRate(int rate)
Задаёт частоту мигания каретки.
void setDot(int dot)
Задаёт положение каретки и метки в указанное положение с прямым смещением.
void setDot(int dot, Position.Bias dotBias)
Задаёт положение каретки и метки в указанное положение с заданным смещением.
void setMagicCaretPosition(Point p)
Сохраняет текущее положение каретки.
void setSelectionVisible(boolean vis)
Изменяет видимость выделения.
void setUpdatePolicy(int policy)
Задаёт политику перемещения каретки при обновлении документа.
void setVisible(boolean e)
Задаёт видимость каретки и перерисовывает её.

Методы, объявленные в классе Rectangle

add, add, add, contains, contains, contains, contains, createIntersection, createUnion, getBounds, getBounds2D, getHeight, getLocation, getSize, getWidth, getX, getY, grow, inside, intersection, intersects, isEmpty, move, outcode, reshape, resize, setBounds, setBounds, setLocation, setLocation, setRect, setSize, setSize, toString, translate, union
Модификатор и тип Метод Описание
void add(int newx, int newy)
Добавляет точку, заданную целочисленными аргументами newx,newy, к границам этого Rectangle.
void add(Point pt)
Добавляет указанный Point к границам этого Rectangle.
void add(Rectangle r)
Добавляет Rectangle к этому Rectangle.
boolean contains(int x, int y)
Проверяет, содержит ли это Rectangle точку в указанном положении (x,y).
boolean contains(int X, int Y, int W, int H)
Проверяет, полностью ли это Rectangle содержит Rectangle в указанном положении (X,Y) и с указанными размерами (W,H).
boolean contains(Point p)
Проверяет, содержит ли это Rectangle указанный Point.
boolean contains(Rectangle r)
Проверяет, полностью ли это Rectangle содержит указанный Rectangle.
Rectangle2D createIntersection(Rectangle2D r)
Возвращает новый объект Rectangle2D, представляющий пересечение этого Rectangle2D с указанным Rectangle2D.
Rectangle2D createUnion(Rectangle2D r)
Возвращает новый объект Rectangle2D, представляющий объединение этого Rectangle2D с указанным Rectangle2D.
Rectangle getBounds()
Возвращает ограничивающий Rectangle этого Rectangle.
Rectangle2D getBounds2D()
Возвращает ограничивающий прямоугольник Shape с более высокой точностью, чем метод getBounds.
double getHeight()
Возвращает высоту ограничивающего Rectangle с точностью double.
Point getLocation()
Возвращает положение этого Rectangle.
Dimension getSize()
Возвращает размер этого Rectangle, представленный возвращаемым Dimension.
double getWidth()
Возвращает ширину ограничивающего Rectangle с точностью double.
double getX()
Возвращает координату X ограничивающего Rectangle с точностью double.
double getY()
Возвращает координату Y ограничивающего Rectangle с точностью double.
void grow(int h, int v)
Изменяет размер Rectangle по горизонтали и вертикали.
boolean inside(int X, int Y)
Устарело.
Начиная с JDK версии 1.1 заменено на contains(int, int).
Rectangle intersection(Rectangle r)
Вычисляет пересечение этого Rectangle с указанным Rectangle.
boolean intersects(Rectangle r)
Определяет, пересекаются ли это Rectangle и указанный Rectangle.
boolean isEmpty()
Определяет, является ли RectangularShape пустым.
void move(int x, int y)
Устарело.
Начиная с JDK версии 1.1 заменено на setLocation(int, int).
int outcode(double x, double y)
Определяет положение указанных координат относительно этого Rectangle2D.
void reshape(int x, int y, int width, int height)
Устарело.
Начиная с JDK версии 1.1 заменено на setBounds(int, int, int, int).
void resize(int width, int height)
Устарело.
Начиная с JDK версии 1.1 заменено на setSize(int, int).
void setBounds(int x, int y, int width, int height)
Задаёт ограничивающий Rectangle этого Rectangle указанными значениями x, y, width и height.
void setBounds(Rectangle r)
Задаёт ограничивающий Rectangle этого Rectangle в соответствии с указанным Rectangle.
void setLocation(int x, int y)
Перемещает это Rectangle в указанное положение.
void setLocation(Point p)
Перемещает это Rectangle в указанное положение.
void setRect(double x, double y, double width, double height)
Задаёт границы этого Rectangle как целочисленные границы, охватывающие указанные x, y, width и height.
void setSize(int width, int height)
Задаёт для этого Rectangle указанные ширину и высоту.
void setSize(Dimension d)
Задаёт размер этого Rectangle в соответствии с указанным Dimension.
String toString()
Возвращает String, представляющий это Rectangle и его значения.
void translate(int dx, int dy)
Смещает это Rectangle на указанное расстояние вправо вдоль оси X и вниз вдоль оси Y.
Rectangle union(Rectangle r)
Вычисляет объединение этого Rectangle с указанным Rectangle.

Методы, объявленные в классе Rectangle2D

add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, union
Модификатор и тип Метод Описание
void add(double newx, double newy)
Добавляет точку, заданную аргументами двойной точности newx и newy, к этому Rectangle2D.
void add(Point2D pt)
Добавляет объект Point2D pt к этому Rectangle2D.
void add(Rectangle2D r)
Добавляет объект Rectangle2D к этому Rectangle2D.
boolean contains(double x, double y)
Проверяет, находятся ли указанные координаты внутри границы Shape, как описано в определении нахождения внутри.
boolean contains(double x, double y, double w, double h)
Проверяет, полностью ли внутренняя область Shape содержит указанную прямоугольную область.
PathIterator getPathIterator(AffineTransform at)
Возвращает объект-итератор, описывающий границу этого Rectangle2D.
PathIterator getPathIterator(AffineTransform at, double flatness)
Возвращает объект-итератор, описывающий границу упрощённого Rectangle2D.
int hashCode()
Возвращает хеш-код этого Rectangle2D.
static void intersect(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Пересекает указанную пару исходных объектов Rectangle2D и помещает результат в указанный целевой объект Rectangle2D.
boolean intersects(double x, double y, double w, double h)
Проверяет, пересекает ли внутренняя область Shape внутреннюю область указанного прямоугольника.
boolean intersectsLine(double x1, double y1, double x2, double y2)
Проверяет, пересекает ли указанный отрезок внутреннюю область этого Rectangle2D.
boolean intersectsLine(Line2D l)
Проверяет, пересекает ли указанный отрезок внутреннюю область этого Rectangle2D.
int outcode(Point2D p)
Определяет положение указанной Point2D относительно этого Rectangle2D.
void setFrame(double x, double y, double w, double h)
Задаёт положение и размер внешних границ этого Rectangle2D указанными значениями прямоугольника.
void setRect(Rectangle2D r)
Задаёт этому Rectangle2D значения указанного Rectangle2D.
static void union(Rectangle2D src1, Rectangle2D src2, Rectangle2D dest)
Объединяет пару исходных объектов Rectangle2D и помещает результат в указанный целевой объект Rectangle2D.

Методы, объявленные в классе RectangularShape

clone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
Модификатор и тип Метод Описание
Object clone()
Создаёт новый объект того же класса с тем же содержимым, что и у этого объекта.
boolean contains(Point2D p)
Проверяет, находится ли указанная Point2D внутри границы Shape, как описано в определении нахождения внутри.
boolean contains(Rectangle2D r)
Проверяет, полностью ли внутренняя область Shape содержит указанный Rectangle2D.
double getCenterX()
Возвращает координату X центра ограничивающего прямоугольника Shape с точностью double.
double getCenterY()
Возвращает координату Y центра ограничивающего прямоугольника Shape с точностью double.
Rectangle2D getFrame()
Возвращает ограничивающий Rectangle2D, определяющий общую форму этого объекта.
double getMaxX()
Возвращает наибольшую координату X ограничивающего прямоугольника Shape с точностью double.
double getMaxY()
Возвращает наибольшую координату Y ограничивающего прямоугольника Shape с точностью double.
double getMinX()
Возвращает наименьшую координату X ограничивающего прямоугольника Shape с точностью double.
double getMinY()
Возвращает наименьшую координату Y ограничивающего прямоугольника Shape с точностью double.
boolean intersects(Rectangle2D r)
Проверяет, пересекает ли внутренняя область Shape внутреннюю область указанного Rectangle2D.
void setFrame(Point2D loc, Dimension2D size)
Задаёт положение и размер ограничивающего прямоугольника этого Shape, используя соответственно указанную Point2D и Dimension2D.
void setFrame(Rectangle2D r)
Задаёт для этого Shape указанный Rectangle2D в качестве ограничивающего прямоугольника.
void setFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY)
Задаёт ограничивающий прямоугольник этого Shape на основе указанных координат центральной и угловой точек.
void setFrameFromCenter(Point2D center, Point2D corner)
Задаёт ограничивающий прямоугольник этого Shape на основе указанного центра Point2D и угла Point2D.
void setFrameFromDiagonal(double x1, double y1, double x2, double y2)
Задаёт диагональ ограничивающего прямоугольника этого Shape на основе двух указанных координат.
void setFrameFromDiagonal(Point2D p1, Point2D p2)
Задаёт диагональ ограничивающего прямоугольника этого Shape на основе двух указанных объектов Point2D.

Методы, объявленные в классе Object

finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected void finalize()
Устарело, подлежит удалению: этот элемент API может быть удалён в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание полей

UPDATE_WHEN_ON_EDT

public static final int UPDATE_WHEN_ON_EDT
Указывает, что позиция каретки обновляется только при изменении документа в потоке диспетчеризации событий.
Начиная с версии:
1.5
См. также:
  • setUpdatePolicy(int)
  • getUpdatePolicy()
  • Значения констант полей

NEVER_UPDATE

public static final int NEVER_UPDATE
Указывает, что каретка должна оставаться в той же абсолютной позиции документа независимо от любых обновлений документа, за исключением случая, когда длина документа в результате удаления становится меньше текущей позиции каретки. В этом случае позиция каретки устанавливается в конец документа.
Начиная с версии:
1.5
См. также:
  • setUpdatePolicy(int)
  • getUpdatePolicy()
  • Значения констант полей

ALWAYS_UPDATE

public static final int ALWAYS_UPDATE
Указывает, что позиция каретки всегда обновляется в соответствии с изменениями документа независимо от того, выполняются ли обновления документа в потоке диспетчеризации событий.
Начиная с версии:
1.5
См. также:
  • setUpdatePolicy(int)
  • getUpdatePolicy()
  • Значения констант полей

listenerList

protected EventListenerList listenerList
Список прослушивателей событий.

changeEvent

protected transient ChangeEvent changeEvent
Событие изменения модели. Для каждого экземпляра модели требуется только один ChangeEvent, поскольку единственное (доступное только для чтения) состояние события — это свойство источника. Источником создаваемых здесь событий всегда является "this".

Подробное описание конструкторов

DefaultCaret

public DefaultCaret()
Создает каретку по умолчанию.

Подробное описание методов

setUpdatePolicy

public void setUpdatePolicy(int policy)
Задает политику перемещения каретки при обновлении документа. Обычно каретка обновляет свою абсолютную позицию в документе при вставках, выполненных до позиции каретки или в этой позиции, и при удалениях, выполненных до позиции каретки. Здесь «абсолютная позиция» означает позицию относительно начала документа. Например, если символ вводится в редактируемый текстовый компонент, он вставляется в позиции каретки, и каретка перемещается на следующую абсолютную позицию в документе. Если же вводится BACKSPACE, абсолютная позиция каретки уменьшается из-за удаления символа перед ней. Иногда бывает полезно отключить обновление позиции каретки, чтобы она оставалась в той же абсолютной позиции документа независимо от любых обновлений документа.

Допускаются следующие политики обновления:

  • NEVER_UPDATE: каретка остается в той же абсолютной позиции документа независимо от любых обновлений документа, за исключением случая, когда длина документа в результате удаления становится меньше текущей позиции каретки. В этом случае позиция каретки устанавливается в конец документа. При использовании этой политики каретка не пытается оставаться видимой, прокручивая связанное с ней представление.
  • ALWAYS_UPDATE: каретка всегда отслеживает изменения документа. При обычных изменениях ее позиция увеличивается, если вставка выполняется до текущей позиции или в этой позиции, и уменьшается, если удаление выполняется до текущей позиции. При обновлениях отмены и повтора каретка всегда перемещается в позицию, в которой произошло обновление. Каретка также пытается оставаться видимой, вызывая метод adjustVisibility.
  • UPDATE_WHEN_ON_EDT: действует как ALWAYS_UPDATE, если обновления документа выполняются в потоке диспетчеризации событий, и как NEVER_UPDATE, если обновления выполняются в другом потоке.

Значение свойства по умолчанию — UPDATE_WHEN_ON_EDT.

Параметры:
policy — одно из следующих значений: UPDATE_WHEN_ON_EDT, NEVER_UPDATE, ALWAYS_UPDATE
Исключения:
IllegalArgumentException — если передано недопустимое значение
Начиная с версии:
1.5
См. также:
  • getUpdatePolicy()
  • adjustVisibility(Rectangle)
  • UPDATE_WHEN_ON_EDT
  • NEVER_UPDATE
  • ALWAYS_UPDATE

getUpdatePolicy

public int getUpdatePolicy()
Возвращает политику перемещения каретки при обновлении документа.
Возвращает:
одно из следующих значений: UPDATE_WHEN_ON_EDT, NEVER_UPDATE, ALWAYS_UPDATE
Начиная с версии:
1.5
См. также:
  • setUpdatePolicy(int)
  • UPDATE_WHEN_ON_EDT
  • NEVER_UPDATE
  • ALWAYS_UPDATE

getComponent

protected final JTextComponent getComponent()
Возвращает компонент текстового редактора, с которым связана эта каретка.
Возвращает:
компонент

repaint

protected final void repaint()
Перерисовывает каретку. Область перерисовки — это ограничивающий прямоугольник каретки (то есть прямоугольник каретки или этот объект).

Этот метод потокобезопасен, хотя большинство методов Swing таковыми не являются. Дополнительные сведения см. в разделе Параллельное программирование в Swing.

damage

protected void damage(Rectangle r)
Помечает область вокруг каретки для перерисовки в новом месте. Если метод paint() переопределен, этот метод также следует переопределить. Этот метод должен обновлять границы каретки (x, y, width и height).
Параметры:
r — текущее местоположение каретки
См. также:
  • paint(Graphics)

adjustVisibility

protected void adjustVisibility(Rectangle nloc)
При необходимости прокручивает связанное представление, чтобы сделать каретку видимой. Поскольку способ выполнения этой операции в некоторой степени определяется политикой, этот метод можно переопределить, чтобы изменить поведение. По умолчанию для связанного компонента вызывается метод scrollRectToVisible.
Параметры:
nloc — новое положение для прокрутки

getSelectionPainter

protected Highlighter.HighlightPainter getSelectionPainter()
Возвращает средство отрисовки для Highlighter.
Возвращает:
средство отрисовки

positionCaret

protected void positionCaret(MouseEvent e)
Пытается задать позицию каретки по координатам события мыши, используя viewToModel().
Параметры:
e — событие мыши

moveCaret

protected void moveCaret(MouseEvent e)
Пытается переместить каретку по координатам события мыши, используя viewToModel(). Если dot и mark различаются, это приведет к выделению.
Параметры:
e — событие мыши

focusGained

public void focusGained(FocusEvent e)
Вызывается, когда компонент, содержащий каретку, получает фокус. Реализация делает каретку видимой, если компонент доступен для редактирования.
Определено в:
focusGained в интерфейсе FocusListener
Параметры:
e — событие фокуса
См. также:
  • FocusListener.focusGained(FocusEvent)

focusLost

public void focusLost(FocusEvent e)
Вызывается, когда компонент, содержащий каретку, теряет фокус. Реализация делает каретку невидимой.
Определено в:
focusLost в интерфейсе FocusListener
Параметры:
e — событие фокуса
См. также:
  • FocusListener.focusLost(FocusEvent)

mouseClicked

public void mouseClicked(MouseEvent e)
Вызывается при щелчке мышью. Если щелчок выполнен кнопкой 1, двойной щелчок выделяет слово, а тройной — текущую строку.
Определено в:
mouseClicked в интерфейсе MouseListener
Параметры:
e — событие мыши
См. также:
  • MouseListener.mouseClicked(MouseEvent)

mousePressed

public void mousePressed(MouseEvent e)
При нажатии кнопки 1 реализация запрашивает фокус для связанного текстового компонента и задает позицию каретки. Если удерживается клавиша Shift, каретка перемещается, что может привести к выделению; в противном случае позиция каретки устанавливается в новое место. Если компонент отключен, запрос фокуса не выполняется.
Определено в:
mousePressed в интерфейсе MouseListener
Параметры:
e — событие мыши
См. также:
  • MouseListener.mousePressed(MouseEvent)

mouseReleased

public void mouseReleased(MouseEvent e)
Вызывается при отпускании кнопки мыши.
Определено в:
mouseReleased в интерфейсе MouseListener
Параметры:
e — событие мыши
См. также:
  • MouseListener.mouseReleased(MouseEvent)

mouseEntered

public void mouseEntered(MouseEvent e)
Вызывается, когда указатель мыши входит в область.
Определено в:
mouseEntered в интерфейсе MouseListener
Параметры:
e — событие мыши
См. также:
  • MouseListener.mouseEntered(MouseEvent)

mouseExited

public void mouseExited(MouseEvent e)
Вызывается, когда указатель мыши покидает область.
Определено в:
mouseExited в интерфейсе MouseListener
Параметры:
e — событие мыши
См. также:
  • MouseListener.mouseExited(MouseEvent)

mouseDragged

public void mouseDragged(MouseEvent e)
Перемещает каретку в соответствии с текущим положением указателя мыши. Это фактически расширяет выделение. По умолчанию это выполняется только для кнопки мыши 1.
Определено в:
mouseDragged в интерфейсе MouseMotionListener
Параметры:
e — событие мыши
См. также:
  • MouseMotionListener.mouseDragged(MouseEvent)

mouseMoved

public void mouseMoved(MouseEvent e)
Вызывается при перемещении мыши.
Определено в:
mouseMoved в интерфейсе MouseMotionListener
Параметры:
e — событие мыши
См. также:
  • MouseMotionListener.mouseMoved(MouseEvent)

paint

public void paint(Graphics g)
Отрисовывает каретку в виде вертикальной линии. Если этот метод переопределен, следует также переопределить метод damage, поскольку он предполагает, что каретка имеет форму вертикальной линии. Задает цвет каретки, равный значению, возвращаемому методом getCaretColor().

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

Определено в:
paint в интерфейсе Caret
Параметры:
g — графический контекст
См. также:
  • damage(Rectangle)

install

public void install(JTextComponent c)
Вызывается при установке пользовательского интерфейса в интерфейс JTextComponent. Это можно использовать для доступа к модели, по которой осуществляется навигация при реализации этого интерфейса. Устанавливает dot и mark в 0 и регистрирует прослушиватели документа, изменения свойств, фокуса, мыши и перемещения мыши.
Определено в:
install в интерфейсе Caret
Параметры:
c — компонент
См. также:
  • Caret.install(JTextComponent)

deinstall

public void deinstall(JTextComponent c)
Вызывается при удалении пользовательского интерфейса из интерфейса JTextComponent. Используется для отмены регистрации всех ранее подключенных прослушивателей.
Определено в:
deinstall в интерфейсе Caret
Параметры:
c — компонент
См. также:
  • Caret.deinstall(JTextComponent)

addChangeListener

public void addChangeListener(ChangeListener l)
Добавляет прослушиватель для отслеживания изменений позиции каретки.
Определено в:
addChangeListener в интерфейсе Caret
Параметры:
l — прослушиватель
См. также:
  • Caret.addChangeListener(ChangeListener)

removeChangeListener

public void removeChangeListener(ChangeListener l)
Удаляет прослушиватель, отслеживавший изменения позиции каретки.
Определено в:
removeChangeListener в интерфейсе Caret
Параметры:
l — прослушиватель
См. также:
  • Caret.removeChangeListener(ChangeListener)

getChangeListeners

public ChangeListener[] getChangeListeners()
Возвращает массив всех прослушивателей изменений, зарегистрированных для этой каретки.
Возвращает:
все ChangeListener этой каретки или пустой массив, если в данный момент прослушиватели изменений не зарегистрированы
Начиная с версии:
1.4
См. также:
  • addChangeListener(ChangeListener)
  • removeChangeListener(ChangeListener)

fireStateChanged

protected void fireStateChanged()
Уведомляет всех прослушивателей, зарегистрировавших интерес к уведомлениям о событиях этого типа. Экземпляр события создается отложенно с использованием параметров, переданных методу fire. Список прослушивателей обрабатывается в обратном порядке.
См. также:
  • EventListenerList

getListeners

public <T extends EventListener> T[] getListeners(Class<T> listenerType)
Возвращает массив всех объектов, зарегистрированных в данный момент как FooListener для этой каретки. Регистрация FooListener выполняется с помощью метода addFooListener.

В качестве аргумента listenerType можно указать литерал класса, например FooListener.class. Например, можно запросить у DefaultCaret c список прослушивателей изменений следующим образом:

ChangeListener[] cls = (ChangeListener[])(c.getListeners(ChangeListener.class));
Если таких прослушивателей нет, этот метод возвращает пустой массив.
Параметры типа:
T — тип прослушивателя
Параметры:
listenerType — тип запрашиваемых прослушивателей
Возвращает:
массив всех объектов, зарегистрированных как FooListener для этого компонента, или пустой массив, если такие прослушиватели не добавлены
Исключения:
ClassCastException — если listenerType не задает класс или интерфейс, реализующий java.util.EventListener
Начиная с версии:
1.3
См. также:
  • getChangeListeners()

setSelectionVisible

public void setSelectionVisible(boolean vis)
Изменяет видимость выделения.
Определено в:
setSelectionVisible в интерфейсе Caret
Параметры:
vis — новое состояние видимости

isSelectionVisible

public boolean isSelectionVisible()
Проверяет, видно ли текущее выделение.
Определено в:
isSelectionVisible в интерфейсе Caret
Возвращает:
true, если выделение видно

isActive

public boolean isActive()
Определяет, активна ли каретка в данный момент.

Этот метод возвращает, находится ли Caret в данный момент в состоянии мигания. Он не сообщает, отображается ли каретка в данный момент. Чтобы определить, отрисована ли каретка, используйте метод isVisible.

Возвращает:
true, если каретка активна, иначе false
Начиная с версии:
1.5
См. также:
  • isVisible()

isVisible

public boolean isVisible()
Указывает, видна ли каретка в данный момент. При мигании каретки возвращаемое значение этого метода меняется между true, когда каретка отрисована, и false, когда она не отрисована. isActive указывает, находится ли каретка в состоянии мигания, то есть может быть видимой, а isVisible указывает, действительно ли каретка видна.

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

Определено в:
isVisible в интерфейсе Caret
Возвращает:
true, если каретка видна, иначе false
См. также:
  • Caret.isVisible()
  • isActive()

setVisible

public void setVisible(boolean e)
Задает видимость каретки и перерисовывает ее. Важно понимать взаимосвязь между этим методом, isVisible и isActive. Вызов этого метода со значением true активирует мигание каретки. Установка значения false полностью отключает каретку. Чтобы определить, активно ли мигание, следует вызвать isActive. По сути, isActive является соответствующим методом получения значения для этого метода. Метод isVisible позволяет получить текущее состояние видимости каретки, то есть узнать, отрисована ли она в данный момент. Это состояние меняется при мигании каретки.

Ниже приведен список возможных значений, возвращаемых методами isActive и isVisible после вызова этого метода:

setVisible(true):

  • isActive(): true
  • isVisible(): true или false — в зависимости от того, отображается ли каретка в данный момент

setVisible(false):

  • isActive(): false
  • isVisible(): false
Определено в:
setVisible в интерфейсе Caret
Параметры:
e — признак видимости
См. также:
  • isActive()
  • Caret.setVisible(boolean)

setBlinkRate

public void setBlinkRate(int rate)
Задает частоту мигания каретки.
Определено в:
setBlinkRate в интерфейсе Caret
Параметры:
rate — интервал в миллисекундах; 0 отключает мигание
См. также:
  • Caret.setBlinkRate(int)

getBlinkRate

public int getBlinkRate()
Возвращает частоту мигания каретки.
Определено в:
getBlinkRate в интерфейсе Caret
Возвращает:
задержку в миллисекундах. Если ее значение равно нулю, каретка не мигает.
См. также:
  • Caret.getBlinkRate()

getDot

public int getDot()
Возвращает текущую позицию каретки.
Определено в:
getDot в интерфейсе Caret
Возвращает:
позицию >= 0
См. также:
  • Caret.getDot()

getMark

public int getMark()
Возвращает текущую позицию отметки. Если есть выделение, dot и mark не совпадают.
Определено в:
getMark в интерфейсе Caret
Возвращает:
позицию >= 0
См. также:
  • Caret.getMark()

setDot

public void setDot(int dot)
Устанавливает позицию каретки и отметки в указанную позицию с прямым смещением. При этом диапазон выделения становится равным нулю.
Определено в:
setDot в интерфейсе Caret
Параметры:
dot — позиция >= 0
См. также:
  • setDot(int, Position.Bias)
  • Caret.setDot(int)

moveDot

public void moveDot(int dot)
Перемещает каретку в указанную позицию с прямым смещением.
Определено в:
moveDot в интерфейсе Caret
Параметры:
dot — позиция >= 0
См. также:
  • moveDot(int, javax.swing.text.Position.Bias)
  • Caret.moveDot(int)

moveDot

public void moveDot(int dot, Position.Bias dotBias)
Перемещает каретку в указанную позицию с заданным смещением.
Параметры:
dot — позиция >= 0
dotBias — смещение для этой позиции, не null
Исключения:
IllegalArgumentException — если смещение равно null
Начиная с версии:
1.6
См. также:
  • Caret.moveDot(int)

setDot

public void setDot(int dot, Position.Bias dotBias)
Устанавливает позицию каретки и метку в указанную позицию с указанным смещением. При этом диапазон выделения неявно устанавливается равным нулю.
Параметры:
dot — позиция >= 0
dotBias — смещение для этой позиции, не null
Исключения:
IllegalArgumentException — если смещение равно null
Начиная с версии:
1.6
См. также:
  • Caret.setDot(int)

getDotBias

public Position.Bias getDotBias()
Возвращает смещение позиции каретки.
Возвращает:
смещение позиции каретки
Начиная с версии:
1.6

getMarkBias

public Position.Bias getMarkBias()
Возвращает смещение метки.
Возвращает:
смещение метки
Начиная с версии:
1.6

setMagicCaretPosition

public void setMagicCaretPosition(Point p)
Сохраняет текущую позицию каретки. Это используется при перемещении каретки вверх и вниз между строками с разными конечными позициями.
Определено в:
setMagicCaretPosition в интерфейсе Caret
Параметры:
p — позиция
См. также:
  • getMagicCaretPosition()

getMagicCaretPosition

public Point getMagicCaretPosition()
Получает сохранённую позицию каретки.
Определено в:
getMagicCaretPosition в интерфейсе Caret
Возвращает:
позиция; см. #setMagicCaretPosition
См. также:
  • Caret.setMagicCaretPosition(Point)

equals

public boolean equals(Object obj)
Сравнивает этот объект с указанным объектом. Поведение суперкласса при сравнении прямоугольников здесь нежелательно, поэтому оно заменено поведением класса Object.
Переопределяет:
equals в классе Rectangle
Параметры:
obj — объект, с которым сравнивается этот шрифт
Возвращает:
true, если объекты равны; false в противном случае
См. также:
  • Object.hashCode()
  • HashMap

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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