模块  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 - 模型中片段应该 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 - 起始文档偏移量> = 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 - for an invalid direction