模块  java.desktop
软件包  javax.swing.text

Class NavigationFilter


  • public class NavigationFilterextends Object
    NavigationFilter可用于限制光标的位置。 当默认光标定位操作尝试重新定位光标,他们将调用到NavigationFilter ,假设JTextComponent有一个非空NavigationFilter集。 通过这种方式, NavigationFilter可以有效地限制光标所在的位置。 类似地,当用户更改选择以进一步限制光标所在的位置时, DefaultCaret将调用NavigationFilter

    子类可以有条件地调用超级实现来限制光标的放置位置,或者直接调用FilterBypass

    从以下版本开始:
    1.4
    另请参见:
    CaretDefaultCaretView
    • 构造方法详细信息

      • NavigationFilter

        public NavigationFilter()
    • 方法详细信息

      • 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没有上述合法值之一