Module  java.desktop
软件包  javax.swing.text

Class GlyphView.GlyphPainter

  • Enclosing class:
    GlyphView


    public abstract static class GlyphView.GlyphPainter
    extends Object
    一个执行字形渲染的类。 这可以被实现为无状态的,或者将一些信息保存为缓存以促进更快的渲染和模型/视图的翻译。 至少,GlyphPainter允许View实现独立于特定版本的JVM和功能的选择(即i18n的整形等)执行其职责。
    从以下版本开始:
    1.3
    • 构造方法详细信息

      • GlyphPainter

        public GlyphPainter​()
    • 方法详细信息

      • 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 - 结束位置
      • getBoundedPosition

        public abstract int getBoundedPosition​(GlyphView v,
                                               int p0,
                                               float x,
                                               float len)
        确定表示适合给定跨度的最大提前的模型位置。 这可以用来打破给定的视图。 结果应该是给定进度的一个地方。 这与viewToModel不同,后者返回最接近的位置,这可能为最大提前感到自豪。
        参数
        v - 查看模型位置来查看。
        p0 - 模型中片段应该开始的位置> = 0。
        x - 断开的视图将占据> = 0的轴上的图形位置。这可能对标签计算等有用。
        len - 指定要进行潜在中断的视图中的距离> = 0。
        结果
        最大的模型位置可能为休息。
        另请参见:
        View.breakView(int, int, float, float)
      • getPainter

        public GlyphView.GlyphPainter getPainter​(GlyphView v,
                                                 int p0,
                                                 int p1)
        为给定的GlyphView创建一个画家。 如果画家承担状态,它可以创建另一个画家来表示正在创建的新的GlyphView。 如果画家没有任何重大的状态,它可以自己回来。 默认行为是返回自身。
        参数
        v - 提供画家的 GlyphView
        p0 - 起始文档offset> = 0
        p1 - 结束文件offset> = 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 - for an invalid direction