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

Class ParagraphView

  • All Implemented Interfaces:
    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 - 分数值
      • setPropertiesFromAttributes

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

        protected int getLayoutViewCount​()
        返回此视图负责的视图数。 该段的子视图是用于排列表示子元素的View的块的行。 这是平铺在二维中的视图数,应等于该视图负责的元素的子元素数。
        结果
        ParagraphView负责的意见的数量
      • getLayoutView

        protected View getLayoutView​(int index)
        返回给定的视图index 该段的子视图是用于排列表示子元素的Views的各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)
        确定下一个视图放在哪个方向。 考虑索引号为View 通常, View放置,以便EAST的View将处于索引n + 1,而WEST的View将处于索引n-1。在某些情况下,例如具有双向文本,可能的是,EAST的View不在索引n + 1,而是索引n-1,或者WEST的View不在索引n-1,而是索引n + 1。在这种情况下,方法将返回true,表示View以降序排列。

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

        重写:
        flipEastAndWestAtEndsBoxView
        参数
        position - 进入模型的位置
        bias - Position.Bias.ForwardPosition.Bias.Backward
        结果
        如果文本被放置在位置左侧,否则为false,则为true。
      • getFlowSpan

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

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

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

        public float nextTabStop​(float x,
                                 int tabOffset)
        返回给定参考位置的下一个制表位置位置。 该视图实现标签坐标系统,并在布局过程中调用getTabbedSpan上的逻辑子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将使用preferredSpan
        参数
        startOffset - 起始文档offset> = 0
        endOffset - 结束文档offset> = startOffset
        结果
        大小> = 0
      • findOffsetToCharactersInString

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

        protected float getTabBase​()
        返回从中计算制表符的位置。
        结果
        其中选项卡从中计算
      • getAlignment

        public float getAlignment​(int axis)
        确定沿着轴的该视图的所需对准。 这被实现为沿着y轴对准到第一行的中心,并且沿着x轴的默认值。
        重写:
        getAlignmentBoxView
        参数
        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对象。

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