Module java.desktop
Package javax.swing.text

Class NavigationFilter

java.lang.Object
javax.swing.text.NavigationFilter

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

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

自 JDK 版本:
1.4
参见:
  • Constructor Details

    • NavigationFilter

      public NavigationFilter()
      构造一个 NavigationFilter
  • Method Details

    • 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
      返回从现有位置放置插入符的下一个视觉位置。默认实现简单地将方法转发到根 View。子类可能希望根据额外的条件进一步限制位置。
      参数:
      text - 包含文本的 JTextComponent
      pos - 用于确定下一个位置的位置
      bias - 用于确定下一个位置的偏好
      direction - 从当前位置开始的方向,可以被视为键盘上通常找到的箭头键。这将是以下值之一:
      • SwingConstants.WEST
      • SwingConstants.EAST
      • SwingConstants.NORTH
      • SwingConstants.SOUTH
      biasRet - 用于返回下一个位置的结果偏好
      返回:
      最能代表下一个位置视觉位置的模型内位置
      抛出:
      BadLocationException - 对于文档模型中的错误位置
      IllegalArgumentException - 如果 direction 不具有上述合法值之一