- java.lang.Object
-
- javax.swing.text.NavigationFilter
-
public class NavigationFilter extends Object
可以使用NavigationFilter
来限制光标所在的位置。 当默认光标定位动作尝试重新定位光标时,它们将调用NavigationFilter
,假设JTextComponent
具有非空NavigationFilter
集。 以这种方式,NavigationFilter
可以有效地限制光标位置的位置。 类似地,DefaultCaret
将在用户正在更改选择时调用进入NavigationFilter
,以进一步限制光标所在的位置。子类可以有条件地调用超级实现来限制可以放置光标的位置,或直接调用到
FilterBypass
。- 从以下版本开始:
- 1.4
- 另请参见:
-
Caret
,DefaultCaret
,View
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
NavigationFilter.FilterBypass
用来作为一种避开回调插入符来定位光标的方式。
-
构造方法摘要
构造方法 Constructor 描述 NavigationFilter()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 int
getNextVisualPositionFrom(JTextComponent text, int pos, Position.Bias bias, int direction, Position.Bias[] biasRet)
返回下一个视觉位置,从现有位置放置插入符号。void
moveDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias)
在插入点移动点之前调用。void
setDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias)
在插入点设置点之前调用。
-
-
-
方法详细信息
-
setDot
public void setDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias)
在插入点设置点之前调用。 默认实现通过传入的参数直接调用到FilterBypass
中。 子类可能希望有条件地使用不同的位置调用super,或者在FilterBypass
调用必要的方法- 参数
-
fb
- FilterBypass可用于突变插入位置 -
dot
- 位置> = 0 -
bias
- 放置点的偏差
-
moveDot
public void moveDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias)
在插入点移动点之前调用。 默认实现通过传入的参数直接调用到FilterBypass
中。 子类可能希望有条件地使用不同的位置调用super,或者在FilterBypass
上调用必要的方法。- 参数
-
fb
- FilterBypass可用于突变插入位置 -
dot
- 位置> = 0 -
bias
- 偏好新位置
-
getNextVisualPositionFrom
public int getNextVisualPositionFrom(JTextComponent text, int pos, Position.Bias bias, int direction, Position.Bias[] biasRet) throws BadLocationException
返回下一个视觉位置,从现有位置放置插入符号。 默认实现只是将方法转发到根视图。 子类可能希望基于附加标准进一步限制位置。- 参数
-
text
- 包含文本的JTextComponent -
pos
- 用于确定下一个位置的位置 -
bias
- 用于确定下一个职位的偏差 -
direction
- 从当前位置的方向,可以被认为是通常在键盘上找到的箭头键。 这将是以下值之一:- SwingConstants.WEST
- SwingConstants.EAST
- SwingConstants.NORTH
- SwingConstants.SOUTH
-
biasRet
- 用于返回下一个位置的最终偏差 - 结果
- 模型中最能代表下一个位置视觉位置的位置
- 异常
-
BadLocationException
- 对于文档模型中的错误位置 -
IllegalArgumentException
- 如果direction
没有上述合法值之一
-
-