- 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
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 static class
NavigationFilter.FilterBypass
用作规避回调入插入光标以定位光标的方法。
-
构造方法摘要
构造方法 构造器 描述 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设置点之前调用。
-
-
-
方法详细信息
-
setDot
public void setDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias)
在Caret设置点之前调用。 默认实现使用传入的参数直接调用FilterBypass
。 子类可能希望有条件地使用不同的位置调用super,或者在FilterBypass
上调用必要的方法- 参数
-
fb
- 可用于改变插入位置的FilterBypass -
dot
- 位置> = 0 -
bias
- 将点放在的偏向
-
moveDot
public void moveDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias)
在Caret移动点之前调用。 默认实现使用传入的参数直接调用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
没有上述合法值之一
-
-