Класс NavigationFilter

public class NavigationFilter
extends Object

NavigationFilter может быть использован для ограничения позиционирования курсора. При попытке изменить позицию курсора с помощью стандартных действий, вызывается NavigationFilter, предполагая, что у JTextComponent установлен не нулевой NavigationFilter. Таким образом, NavigationFilter может эффективно ограничить позицию курсора. Аналогично, DefaultCaret вызовет NavigationFilter, когда пользователь меняет выделение, чтобы ещё больше ограничить позицию курсора.

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

Since:
1.4
See Also:
Caret, DefaultCaret, View

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

Модификатор и тип Класс Описание
static class  NavigationFilter.FilterBypass

Используется для обхода вызовов в caret для позиционирования курсора.

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

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

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

Модификатор и тип Метод Описание
int getNextVisualPositionFrom​(JTextComponent text, int pos, Position.Bias bias, int direction, Position.Bias[] biasRet)

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

void moveDot​(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias)

Вызывается перед перемещением Caret.

void setDot​(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias)

Вызывается перед установкой Caret.

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

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

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

NavigationFilter

public NavigationFilter()

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

setDot

public void setDot(NavigationFilter.FilterBypass fb,
                   int dot,
                   Position.Bias bias)

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

Parameters:
fb - FilterBypass, который может быть использован для изменения позиции курсора
dot - позиция >= 0
bias - смещение для установки точки

moveDot

public void moveDot(NavigationFilter.FilterBypass fb,
                    int dot,
                    Position.Bias bias)

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

Parameters:
fb - FilterBypass, который может быть использован для изменения позиции курсора
dot - позиция >= 0
bias - смещение для нового расположения

getNextVisualPositionFrom

public int getNextVisualPositionFrom(JTextComponent text,
                                     int pos,
                                     Position.Bias bias,
                                     int direction,
                                     Position.Bias[] biasRet)
                              throws BadLocationException

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

Parameters:
text - JTextComponent, содержащий текст
pos - Позиция, используемая для определения следующей позиции
bias - Смещение, используемое для определения следующей позиции
direction - направление от текущей позиции, которое можно рассматривать как стрелочные клавиши на клавиатуре. Будет иметь одно из следующих значений:
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
biasRet - Используется для возврата результирующего смещения следующей позиции
Returns:
Расположение в модели, которое лучше всего представляет следующую визуальную позицию
Throws:
BadLocationException - для неправильного расположения в модели документа
IllegalArgumentException - если direction не имеет одного из указанных значений

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/swing/text/NavigationFilter.html

Spec-Zone .ru
спецификации, руководства, описания, API