Класс NavigationFilter
- java.lang.Object
-
- javax.swing.text.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