Module java.desktop
Package javax.swing.text

Class GlyphView.GlyphPainter

java.lang.Object
javax.swing.text.GlyphView.GlyphPainter
封闭类:
GlyphView

public abstract static class GlyphView.GlyphPainter extends Object
用于执行字形渲染的类。这可以实现为无状态,或者保存一些信息作为缓存以便更快地进行渲染和模型/视图转换。至少,GlyphPainter允许View实现独立于特定版本的JVM和功能选择(例如i18n的形状等)执行其职责。
自版本:
1.3
  • Constructor Details

    • GlyphPainter

      protected GlyphPainter()
      子类调用的构造函数。
  • Method Details

    • getSpan

      public abstract float getSpan(GlyphView v, int p0, int p1, TabExpander e, float x)
      确定给定起始位置的字形跨度(用于制表符展开)。
      参数:
      v - GlyphView
      p0 - 起始位置
      p1 - 结束位置
      e - 遇到制表符时如何展开
      x - X坐标
      返回:
      给定起始位置的字形跨度
    • getHeight

      public abstract float getHeight(GlyphView v)
      返回高度。
      参数:
      v - GlyphView
      返回:
      高度
    • getAscent

      public abstract float getAscent(GlyphView v)
      返回上升值。
      参数:
      v - GlyphView
      返回:
      上升值
    • getDescent

      public abstract float getDescent(GlyphView v)
      返回下降值。
      参数:
      v - GlyphView
      返回:
      下降值
    • paint

      public abstract void paint(GlyphView v, Graphics g, Shape a, int p0, int p1)
      绘制表示给定范围的字形。
      参数:
      v - GlyphView
      g - 图形上下文
      a - 视图的当前分配
      p0 - 起始位置
      p1 - 结束位置
    • modelToView

      public abstract Shape modelToView(GlyphView v, int pos, Position.Bias bias, Shape a) throws BadLocationException
      提供从文档模型坐标空间到其映射视图的坐标空间的映射。这是由断开的视图共享的。
      参数:
      v - 包含目标坐标空间的GlyphView
      pos - 要转换的位置
      bias - Position.Bias.ForwardPosition.Bias.Backward
      a - 视图的边界
      返回:
      给定位置的边界框
      抛出:
      BadLocationException - 如果给定位置在关联文档中不表示有效位置
      参见:
    • viewToModel

      public abstract int viewToModel(GlyphView v, float x, float y, Shape a, Position.Bias[] biasReturn)
      提供从视图坐标空间到模型的逻辑坐标空间的映射。
      参数:
      v - 要为其提供映射的GlyphView
      x - X坐标
      y - Y坐标
      a - 要渲染的分配区域
      biasReturn - 作为该数组的第零个元素返回的Position.Bias.ForwardPosition.Bias.Backward
      返回:
      最佳表示给定视图点的模型位置
      参见:
    • getBoundedPosition

      public abstract int getBoundedPosition(GlyphView v, int p0, float x, float len)
      确定表示适合给定跨度的最大前进的模型位置。这可用于分割给定视图。结果应该是刚好少于给定前进的位置。这与viewToModel不同,后者返回可能超出最大前进的最接近位置。
      参数:
      v - 要在其中找到要中断的模型位置的视图。
      p0 - 片段应该从其表示开始的模型位置 >= 0。
      x - 沿着破碎视图将占据的轴的图形位置 >= 0。这对于诸如制表符计算之类的事情可能很有用。
      len - 指定希望在视图中的距离 >= 0 的位置处进行潜在中断。
      返回:
      可以中断的最大模型位置。
      参见:
    • getPainter

      public GlyphView.GlyphPainter getPainter(GlyphView v, int p0, int p1)
      为给定的GlyphView创建一个要使用的绘制器。如果绘制器带有状态,它可以创建另一个绘制器来表示正在创建的新GlyphView。如果绘制器不持有任何重要状态,它可以返回自身。默认行为是返回自身。
      参数:
      v - 要为其提供绘制器的GlyphView
      p0 - 起始文档偏移 >= 0
      p1 - 结束文档偏移 >= p0
      返回:
      用于给定GlyphView的绘制器
    • getNextVisualPositionFrom

      public int getNextVisualPositionFrom(GlyphView v, int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
      提供一种确定下一个可视表示的模型位置的方法,可以在其中放置插入符号。某些视图可能不可见,它们可能不按照在模型中找到的顺序排列,或者它们可能根本不允许访问模型中的某些位置。
      参数:
      v - 要使用的视图
      pos - 要转换的位置 >= 0
      b - Position.Bias.ForwardPosition.Bias.Backward
      a - 要渲染到的分配区域
      direction - 从当前位置开始的方向,可以被视为通常在键盘上找到的箭头键。这可能是SwingConstants.WEST、SwingConstants.EAST、SwingConstants.NORTH或SwingConstants.SOUTH。
      biasRet - 作为该数组的第零个元素返回的Position.Bias.ForwardPosition.Bias.Backward
      返回:
      最佳表示下一个位置的模型位置。
      抛出:
      BadLocationException - 对于文档模型中的错误位置
      IllegalArgumentException - 对于无效方向