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

Class ParagraphView

  • 实现的所有接口
    SwingConstantsTabExpander
    已知直接子类:
    ParagraphView

    public class ParagraphView
    extends FlowView
    implements TabExpander
    一个简单的换行段落的视图,支持多种字体,颜色,组件,图标等。它基本上是一个垂直框,周围有一个边距。 盒子的内容是一堆特殊的水平盒子。 此视图创建一组视图,表示段落元素的子元素。 如果它们适合,则将这些视图中的每一个直接放入一行,否则调用breakView方法以尝试将视图雕刻成适合的片段。
    另请参见:
    View
    • 字段详细信息

      • firstLineIndent

        protected int firstLineIndent
        从左边插入第一行的缩进。
    • 构造方法详细信息

      • ParagraphView

        public ParagraphView​(Element elem)
        为给定元素构造 ParagraphView
        参数
        elem - 此视图负责的元素
    • 方法详细信息

      • setJustification

        protected void setJustification​(int j)
        设置对齐的类型。
        参数
        j - 以下值之一:
        • StyleConstants.ALIGN_LEFT
        • StyleConstants.ALIGN_CENTER
        • StyleConstants.ALIGN_RIGHT
      • setLineSpacing

        protected void setLineSpacing​(float ls)
        设置行间距。
        参数
        ls - 该值是线路高度的一个因子
      • setFirstLineIndent

        protected void setFirstLineIndent​(float fi)
        设置第一行的缩进。
        参数
        fi - 以 fi为单位的值
      • setPropertiesFromAttributes

        protected void setPropertiesFromAttributes()
        从属性设置缓存属性。
      • getLayoutViewCount

        protected int getLayoutViewCount()
        返回此视图负责的视图数。 段落的子视图是用于排列代表子元素的View的片段的行。 这是以二维方式平铺的视图数,应该等于此视图负责的元素的子元素数。
        结果
        ParagraphView负责的观看次数
      • getLayoutView

        protected View getLayoutView​(int index)
        返回给定index的视图。 段落的子视图是用于排列代表子元素的Views片段的行。 此方法返回负责子元素索引的视图(在中断之前)。 这些是从工厂生成的视图(表示子元素)并用于布局。
        参数
        index - 所需视图的 index
        结果
        查看 index
      • getClosestPositionTo

        protected int getClosestPositionTo​(int pos,
                                           Position.Bias b,
                                           Shape a,
                                           int direction,
                                           Position.Bias[] biasRet,
                                           int rowIndex,
                                           int x)
                                    throws BadLocationException
        返回最接近的模型位置x rowIndex给出了应该查看的对应视图的索引。
        参数
        pos - 进入模型的位置
        b - 偏见
        a - 要分配的已分配区域
        direction - 以下值之一:
        • SwingConstants.NORTH
        • SwingConstants.SOUTH
        biasRet - 包含在此方法中检查的偏差的数组
        rowIndex - 视图的索引
        x - 感兴趣的x坐标
        结果
        最接近的型号位置 x
        异常
        BadLocationException - 如果遇到错误的位置
      • flipEastAndWestAtEnds

        protected boolean flipEastAndWestAtEnds​(int position,
                                                Position.Bias bias)
        确定下一个视图的放置方向。 考虑索引为n的View 通常情况下, ViewView的,因此EAST的View将在索引n + 1处,而到WEST的View将在索引n - 1处。在某些情况下,例如使用双向文本,有可能View到EAST不在索引n + 1,而是在索引n - 1,或者View到WEST不在索引n - 1,但是索引n + 1.在这种情况下这方法将返回true,表示View s按降序排列。

        如果文本从右到左布置在位置,则返回true,否则返回false。

        重写:
        flipEastAndWestAtEnds在类 BoxView
        参数
        position - 进入模型的位置
        bias - Position.Bias.ForwardPosition.Bias.Backward
        结果
        如果文本从右到左布置在位置,则为true,否则为false。
      • getFlowSpan

        public int getFlowSpan​(int index)
        获取约束跨度以针对给定子索引进行流动。
        重写:
        getFlowSpan在班级 FlowView
        参数
        index - 要查询的视图的索引
        结果
        给定视图的约束范围为 index
        从以下版本开始:
        1.3
        另请参见:
        FlowView.getFlowStart(int)
      • getFlowStart

        public int getFlowStart​(int index)
        沿流动轴获取流动跨度将从的位置。
        重写:
        getFlowStart在类 FlowView
        参数
        index - 要查询的视图的索引
        结果
        给定视图的位置 index
        从以下版本开始:
        1.3
        另请参见:
        FlowView.getFlowSpan(int)
      • createRow

        protected View createRow()
        创建一个 View ,用于在流中保存一行的子项。
        Specified by:
        createRow在类 FlowView
        结果
        新的 View
        从以下版本开始:
        1.3
      • nextTabStop

        public float nextTabStop​(float x,
                                 int tabOffset)
        给定参考位置,返回下一个制表位。 此视图实现选项卡坐标系,并在布局过程中对逻辑子项调用getTabbedSpan以确定所需的子项跨度。 逻辑子项可以将其选项卡扩展向上委派给知道如何扩展选项卡的段落。 LabelView是一个视图示例,它将其选项卡扩展需要向上委托给段落。

        实现此方法是为了尝试在段落元素的属性集中找到TabSet 如果找到一个,将使用其设置,否则将提供默认扩展。 选项卡扩展的基本位置是最近分配段落的左侧插图(这是子级布局所基于的)。

        Specified by:
        nextTabStop在界面 TabExpander
        参数
        x - X参考位置
        tabOffset - 选项卡出现在> = 0的文本流中的位置
        结果
        选项卡扩展的尾端> = 0
        另请参见:
        TabSetTabStopLabelView
      • getTabSet

        protected TabSet getTabSet()
        获取用于计算选项卡的 Tabset
        结果
        TabSet
      • getPartialSize

        protected float getPartialSize​(int startOffset,
                                       int endOffset)
        返回startOffsetendOffset之间视图使用的大小。 如果子视图实现TabableView接口,则使用getPartialView计算大小。 如果需要大小且View未实现TabableView接口,则将使用preferredSpan
        参数
        startOffset - 起始文档偏移> = 0
        endOffset - 结束文档偏移> = startOffset
        结果
        大小> = 0
      • findOffsetToCharactersInString

        protected int findOffsetToCharactersInString​(char[] string,
                                                     int start)
        使用string的字符查找文档中的下一个字符,从偏移量start开始。 如果找不到字符,则返回-1。
        参数
        string - 字符串
        start - 从模型开始的位置> = 0
        结果
        文档偏移量,如果没有找到字符,则返回-1
      • getTabBase

        protected float getTabBase()
        返回计算选项卡的位置。
        结果
        选项卡的计算方式
      • paint

        public void paint​(Graphics g,
                          Shape a)
        使用给定的渲染表面和该表面上的区域进行渲染。 这被实现为在存储用于选项卡计算的基础坐标之后委托给超类。
        重写:
        paint在类 BoxView
        参数
        g - 要使用的渲染表面
        a - 要分配的已分配区域
        另请参见:
        View.paint(java.awt.Graphics, java.awt.Shape)
      • getAlignment

        public float getAlignment​(int axis)
        确定此视图沿轴的所需对齐方式。 这被实现为沿y轴给出第一行的中心对齐,沿x轴给出默认对齐。
        重写:
        getAlignment在课堂上 BoxView
        参数
        axis - 可能是 View.X_AXISView.Y_AXIS
        结果
        期望的对齐。 这应该是介于0.0和1.0之间的值,其中0表示原点处的对齐,1.0表示远离原点的整个跨度的对齐。 0.5的对齐将是视图的中心。
      • breakView

        public View breakView​(int axis,
                              float len,
                              Shape a)
        在给定长度的给定轴上打破此视图。

        ParagraphView实例仅在Y_AXIS上可破坏,并且仅当len在第一行之后。

        参数
        axis - 可能是 View.X_AXISView.Y_AXIS
        len - 指定沿给定轴的期望潜在中断的位置> = 0
        a - 当前视图的分配
        结果
        如果视图可以被破坏,则表示给定范围的视图片段; 如果视图不支持中断行为,则返回视图本身
        另请参见:
        View.breakView(int, int, float, float)
      • getBreakWeight

        public int getBreakWeight​(int axis,
                                  float len)
        获取给定位置的中断权重。

        ParagraphView实例仅在Y_AXIS中可破坏,且仅当len位于第一行之后。 如果长度小于一行,则返回值BadBreakWeight

        参数
        axis - 可能是 View.X_AXISView.Y_AXIS
        len - 指定期望潜在中断的位置> = 0
        结果
        表示在这里打破的吸引力的值; GoodBreakWeightBadBreakWeight
        另请参见:
        View.getBreakWeight(int, float, float)
      • calculateMinorAxisRequirements

        protected SizeRequirements calculateMinorAxisRequirements​(int axis,
                                                                  SizeRequirements r)
        计算沿短轴的段落需求。

        这使用超类的大小要求,修改为考虑相邻视图边缘处的不可破坏区域。 此类视图的最小大小要求应不小于所有相邻片段的总和。

        如果axis参数既不是View.X_AXIS也不是View.Y_AXIS ,则抛出IllegalArgumentException 如果r参数为null,则会创建新的SizeRequirements对象,否则将返回提供的SizeRequirements对象。

        重写:
        calculateMinorAxisRequirements在类 FlowView
        参数
        axis - 短轴
        r - 输入 SizeRequirements对象
        结果
        新的或调整过的 SizeRequirements对象
        异常
        IllegalArgumentException - 如果 axis参数无效
        另请参见:
        SizeRequirements