public class DefaultCaret extends Rectangle implements Caret, FocusListener, MouseListener, MouseMotionListener
Эта реализация ожидает два источника асинхронного уведомления. Поток таймера стреляет асинхронно, и заставляет каре просто перекрашивать новый ограничивающий прямоугольник. Каре также отслеживает изменение, поскольку документ изменяется. Обычно это произойдет на событии, диспетчеризируют поток в результате некоторой мыши или события клавиатуры. Поведением каре и на синхронных и на асинхронных обновлениях документов управляют UpdatePolicy
свойство. Перекрашивание нового расположения каре произойдет на потоке события в любом случае, как призывает modelToView
только безопасны на потоке события.
Каре действует как мышь и слушатель фокуса на текстовом компоненте, это было установлено в, и определяет семантику каре, основанную на тех событиях. Методы слушателя могут быть повторно реализованы, чтобы изменить семантику. По умолчанию первая кнопка мыши будет использоваться, чтобы установить позиция каре и фокус. Перетаскивание указателя мыши с первой кнопкой мыши унесет вдаль выбор, который непрерывен в модели. Если связанный текстовый компонент будет доступен для редактирования, то каре станет видимым, когда фокус будет получен, и невидимый, когда фокус теряется.
Маркер, связанный со связанным текстовым компонентом, используется, чтобы представить выбор по умолчанию. Появление выбора может быть настроено, предоставляя живописца, чтобы использовать для выделений. По умолчанию живописец используется, который представит чистый цвет как определено в связанном текстовом компоненте в SelectionColor
свойство. Это может легко быть изменено, повторно реализовывая getSelectionPainter
метод.
Специализированное появление каре может быть достигнуто, повторно реализовывая метод краски. Если метод краски изменяется, метод повреждения должен также быть повторно реализован, чтобы вызвать перекрашивание для области, должен был представить каре. Каре расширяет Прямоугольник class, который используется, чтобы содержать ограничивающий прямоугольник для того, где каре было последнее представленный. Это позволяет каре перекрасить ориентированным на многопотоковое исполнение способом, когда каре перемещается, не делая звонок modelToView, который является нестабильным между обновлениями модели и восстановлением представления (то есть порядок поставки к DocumentListeners не гарантируется).
Волшебная позиция каре, устанавливают в NULL, когда позиция каре изменяется. Таймер используется, чтобы определить новое расположение (после того, как изменение каре). Когда таймер стреляет, если волшебная позиция каре является все еще нулевой, это сбрасывается к текущей позиции каре. Любые действия, которые изменяют позицию каре и хотят, чтобы волшебная позиция каре осталась тем же самым, должны помнить волшебную позицию каре, изменить курсор, и затем установить волшебную позицию каре в ее исходное значение. Это обладает преимуществом, которое только действия, которые хотят, чтобы волшебная позиция каре сохранилась (такой как открытый/вниз) должны знать об этом.
Предупреждение: Сериализированные объекты этого class не будут совместимыми с будущими выпусками Swing. Текущая поддержка сериализации является подходящей для краткосрочного хранения или RMI между приложениями, выполняющими ту же самую версию Swing. С 1.4, поддержка длительного хранения всего JavaBeansTM была добавлена к java.beans
пакет. Пожалуйста, см. XMLEncoder
.
Caret
Rectangle2D.Double, Rectangle2D.Float
Модификатор и Тип | Поле и Описание |
---|---|
static int |
ALWAYS_UPDATE
Указывает, что позиция каре должна всегда обновляться соответственно к изменениям документа независимо, выполняются ли обновления документа на Потоке Диспетчеризации События или нет.
|
protected ChangeEvent |
changeEvent
Событие изменения для модели.
|
protected EventListenerList |
listenerList
Список слушателя события.
|
static int |
NEVER_UPDATE
Указывает, что каре должно остаться в той же самой абсолютной позиции в документе независимо от любых обновлений документа, кроме тех случаев, когда длина документа становится меньше чем текущая позиция каре из-за удаления.
|
static int |
UPDATE_WHEN_ON_EDT
Указывает, что позиция каре должна быть обновлена только, когда изменения документа выполняются на Потоке Диспетчеризации События.
|
height, width, x, y
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP
Конструктор и Описание |
---|
DefaultCaret()
Создает каре значения по умолчанию.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
addChangeListener(ChangeListener l)
Добавляет слушатель дорожки всякий раз, когда позиция каре была изменена.
|
protected void |
adjustVisibility(Rectangle nloc)
Прокручивает связанное представление (в случае необходимости), чтобы сделать каре видимым.
|
protected void |
damage(Rectangle r)
Повреждает область, окружающую каре, чтобы заставить это быть перекрашенным в новом расположении.
|
void |
deinstall(JTextComponent c)
Вызванный, когда UI удаляется из интерфейса JTextComponent.
|
boolean |
equals(Object obj)
Сравнивает этот объект с указанным объектом.
|
protected void |
fireStateChanged()
Уведомляет всех слушателей, которые зарегистрировали интерес для уведомления на этом типе события.
|
void |
focusGained(FocusEvent e)
Вызванный, когда компонент, содержащий каре, получает фокус.
|
void |
focusLost(FocusEvent e)
Вызванный, когда компонент, содержащий каре, теряет фокус.
|
int |
getBlinkRate()
Получает частоту мигания каре.
|
ChangeListener[] |
getChangeListeners()
Возвращает массив всех слушателей изменения, зарегистрированных на этом каре.
|
protected JTextComponent |
getComponent()
Получает компонент текстового редактора, который это каре, связывается с.
|
int |
getDot()
Выбирает текущую позицию каре.
|
Позиция. Смещение |
getDotBias()
Возвращает смещение позиции каре.
|
<T extends EventListener> |
getListeners(Class<T> listenerType)
Возвращает массив всех объектов, в настоящий момент зарегистрированных как
FooListener s на это каре. |
Точка |
getMagicCaretPosition()
Получает сохраненную позицию каре.
|
int |
getMark()
Выбирает текущую позицию метки.
|
Позиция. Смещение |
getMarkBias()
Возвращает смещение метки.
|
protected Highlighter.HighlightPainter |
getSelectionPainter()
Получает живописца для Маркера.
|
int |
getUpdatePolicy()
Получает политику перемещения каре по обновлениям документа.
|
void |
install(JTextComponent c)
Вызванный, когда UI устанавливается в интерфейс 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 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)
Устанавливает видимость каре, и перекрашивает каре.
|
Строка |
toString()
Возвраты a
String представление этого 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, translate, union
add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, union
clone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
finalize, getClass, notify, notifyAll, wait, wait, wait
contains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersects
public static final int UPDATE_WHEN_ON_EDT
setUpdatePolicy(int)
, getUpdatePolicy()
, Постоянные Значения полейpublic static final int NEVER_UPDATE
setUpdatePolicy(int)
, getUpdatePolicy()
, Постоянные Значения полейpublic static final int ALWAYS_UPDATE
setUpdatePolicy(int)
, getUpdatePolicy()
, Постоянные Значения полейprotected EventListenerList listenerList
protected transient ChangeEvent changeEvent
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
- если недопустимое значение передаютgetUpdatePolicy()
, adjustVisibility(java.awt.Rectangle)
, UPDATE_WHEN_ON_EDT
, NEVER_UPDATE
, ALWAYS_UPDATE
public int getUpdatePolicy()
UPDATE_WHEN_ON_EDT
, NEVER_UPDATE
, ALWAYS_UPDATE
setUpdatePolicy(int)
, UPDATE_WHEN_ON_EDT
, NEVER_UPDATE
, ALWAYS_UPDATE
protected final JTextComponent getComponent()
protected final void repaint()
Этот метод ориентирован на многопотоковое исполнение, хотя большинство методов Swing не. Пожалуйста, см.
protected void damage(Rectangle r)
r
- текущее расположение кареpaint(java.awt.Graphics)
protected void adjustVisibility(Rectangle nloc)
nloc
- новая позиция, чтобы прокрутить кprotected Highlighter.HighlightPainter getSelectionPainter()
protected void positionCaret(MouseEvent e)
e
- событие от нажатия мышиprotected void moveCaret(MouseEvent e)
e
- событие от нажатия мышиpublic void focusGained(FocusEvent e)
focusGained
в интерфейсе FocusListener
e
- событие фокусаFocusListener.focusGained(java.awt.event.FocusEvent)
public void focusLost(FocusEvent e)
focusLost
в интерфейсе FocusListener
e
- событие фокусаFocusListener.focusLost(java.awt.event.FocusEvent)
public void mouseClicked(MouseEvent e)
mouseClicked
в интерфейсе MouseListener
e
- событие от нажатия мышиMouseListener.mouseClicked(java.awt.event.MouseEvent)
public void mousePressed(MouseEvent e)
mousePressed
в интерфейсе MouseListener
e
- событие от нажатия мышиMouseListener.mousePressed(java.awt.event.MouseEvent)
public void mouseReleased(MouseEvent e)
mouseReleased
в интерфейсе MouseListener
e
- событие от нажатия мышиMouseListener.mouseReleased(java.awt.event.MouseEvent)
public void mouseEntered(MouseEvent e)
mouseEntered
в интерфейсе MouseListener
e
- событие от нажатия мышиMouseListener.mouseEntered(java.awt.event.MouseEvent)
public void mouseExited(MouseEvent e)
mouseExited
в интерфейсе MouseListener
e
- событие от нажатия мышиMouseListener.mouseExited(java.awt.event.MouseEvent)
public void mouseDragged(MouseEvent e)
mouseDragged
в интерфейсе MouseMotionListener
e
- событие от нажатия мышиMouseMotionListener.mouseDragged(java.awt.event.MouseEvent)
public void mouseMoved(MouseEvent e)
mouseMoved
в интерфейсе MouseMotionListener
e
- событие от нажатия мышиMouseMotionListener.mouseMoved(java.awt.event.MouseEvent)
public void paint(Graphics g)
Если есть многократные текстовые направления, существующие в ассоциированном документе, флаг, указывающий, что смещение каре будет представлено. Это произойдет, только если ассоциированный документ является подклассом AbstractDocument и есть многократные bidi уровни, существующие в bidi структуре элемента (то есть тексту связали многократные направления с этим).
paint
в интерфейсе Caret
g
- графический контекстdamage(java.awt.Rectangle)
public void install(JTextComponent c)
install
в интерфейсе Caret
c
- компонентCaret.install(javax.swing.text.JTextComponent)
public void deinstall(JTextComponent c)
deinstall
в интерфейсе Caret
c
- компонентCaret.deinstall(javax.swing.text.JTextComponent)
public void addChangeListener(ChangeListener l)
addChangeListener
в интерфейсе Caret
l
- слушательCaret.addChangeListener(javax.swing.event.ChangeListener)
public void removeChangeListener(ChangeListener l)
removeChangeListener
в интерфейсе Caret
l
- слушательCaret.removeChangeListener(javax.swing.event.ChangeListener)
public ChangeListener[] getChangeListeners()
ChangeListener
s или пустой массив, если никакие слушатели изменения в настоящий момент не регистрируютсяaddChangeListener(javax.swing.event.ChangeListener)
, removeChangeListener(javax.swing.event.ChangeListener)
protected void fireStateChanged()
EventListenerList
public <T extends EventListener> T[] getListeners(Class<T> listenerType)
FooListener
s на это каре. FooListener
s регистрируются, используя addFooListener
метод. Можно определить listenerType
параметр с литералом class, такой как FooListener.class
. Например, можно запросить a DefaultCaret
c
для его слушателей изменения со следующим кодом:
ChangeListener[] cls = (ChangeListener[])(c.getListeners(ChangeListener.class));Если никакие такие слушатели не существуют, этот метод возвращает пустой массив.
listenerType
- тип слушателей требуют; этот параметр должен определить интерфейс, который убывает от java.util.EventListener
FooListener
s на этом компоненте, или пустом массиве, если никакие такие слушатели не были добавленыClassCastException
- если listenerType
не определяет class или интерфейс, который реализует java.util.EventListener
getChangeListeners()
public void setSelectionVisible(boolean vis)
setSelectionVisible
в интерфейсе Caret
vis
- новая видимостьpublic boolean isSelectionVisible()
isSelectionVisible
в интерфейсе Caret
public boolean isActive()
Этот метод возвращается действительно ли Caret
находится в настоящий момент в мигающем состоянии. Это не предоставляет информацию относительно того, мигают ли на этом в настоящий момент или прочь. Определить, красится ли каре в настоящий момент использование isVisible
метод.
true
если активный еще false
isVisible()
public boolean isVisible()
isActive
указывает, является ли каре в мигающем состоянии, так, что это может быть видимо, и isVisible
указывает, фактически видимо ли каре. Подклассы, которые хотят представить различное каре высвечивания, должны переопределить краску и только нарисовать каре, если этот метод возвращает true.
isVisible
в интерфейсе Caret
Caret.isVisible()
, isActive()
public void setVisible(boolean e)
isVisible
и isActive
. Вызов этого метода со значением true
активирует мигание каре. Установка этого к false
повороты это полностью прочь. Чтобы определить, является ли мигание активным, следует вызвать isActive
. В действительности, isActive
соответствующий соответствующий метод "метода get" для этого. isVisible
может использоваться, чтобы выбрать текущее состояние видимости каре, означая, красится ли это в настоящий момент. Это состояние изменится, поскольку каре мигает на и прочь. Вот список, показывая потенциальные возвращаемые значения обоих isActive
и isVisible
после вызова этого метода:
setVisible(true)
:
setVisible(false)
:
setVisible
в интерфейсе Caret
e
- спецификатор видимостиisActive()
, Caret.setVisible(boolean)
public void setBlinkRate(int rate)
setBlinkRate
в интерфейсе Caret
rate
- уровень в миллисекундах, 0, чтобы прекратить мигатьCaret.setBlinkRate(int)
public int getBlinkRate()
getBlinkRate
в интерфейсе Caret
Caret.getBlinkRate()
public int getDot()
getDot
в интерфейсе Caret
Caret.getDot()
public int getMark()
getMark
в интерфейсе Caret
Caret.getMark()
public void setDot(int dot)
setDot
в интерфейсе Caret
dot
- позиция> = 0setDot(int, Position.Bias)
, Caret.setDot(int)
public void moveDot(int dot)
moveDot
в интерфейсе Caret
dot
- позиция> = 0moveDot(int, javax.swing.text.Position.Bias)
, Caret.moveDot(int)
public void moveDot(int dot, Position.Bias dotBias)
dot
- позиция> = 0dotBias
- смещение для этой позиции, нет null
IllegalArgumentException
- если смещение null
Caret.moveDot(int)
public void setDot(int dot, Position.Bias dotBias)
dot
- позиция> = 0dotBias
- смещение для этой позиции, нет null
IllegalArgumentException
- если смещение null
Caret.setDot(int)
public Position.Bias getDotBias()
public Position.Bias getMarkBias()
public void setMagicCaretPosition(Point p)
setMagicCaretPosition
в интерфейсе Caret
p
- позицияgetMagicCaretPosition()
public Point getMagicCaretPosition()
getMagicCaretPosition
в интерфейсе Caret
Caret.setMagicCaretPosition(java.awt.Point)
public boolean equals(Object obj)
equals
в class Rectangle
obj
- объект сравнить этот шрифт сtrue
если объекты равны; false
иначеObject.hashCode()
, HashMap
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92