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

Class TableView

  • All Implemented Interfaces:
    SwingConstants


    public abstract class TableView
    extends BoxView

    实现一个表的视图界面,它由元素结构组成,该视图的元素的子元素负责表示行,行元素的子元素是单元格。 单元格元素可以在它们之下具有任意的元素结构,这些结构将由getViewFactory方法返回的ViewFactory构建。

         TABLE
          ROW
            CELL
            CELL
          ROW
            CELL
            CELL 

    这被实现为框的层次结构,表本身是垂直框,行是水平框,单元格是垂直框。 允许单元格跨越多个列和行。 默认情况下,表格可以被认为是在网格上形成的(即有些像在gridbag布局中找到),其中表格单元可以请求跨越多个网格单元格。 表单元格的默认水平跨度将基于此网格,但可以通过重新实现单元格的请求跨度来更改(如果需要,表单元格可以具有独立跨度)。

    另请参见:
    View
    • 构造方法详细信息

      • TableView

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

      • createTableRow

        protected TableView.TableRow createTableRow​(Element elem)
        创建一个新的表行。
        参数
        elem - 一个元素
        结果
      • createTableCell

        @Deprecated
        protected TableView.TableCell createTableCell​(Element elem)
        已过时。 表格单元现在可以是任意的View实现,应该由ViewFactory而不是表生成。
        参数
        elem - 一个元素
        结果
        细胞
      • replace

        public void replace​(int offset,
                            int length,
                            View[] views)
        更改子视图。 这被实现以提供超类行为并使网格无效,以便重新计算行和列。
        重写:
        replaceBoxView
        参数
        offset - 启动索引到子视图中插入新视图; 这应该是一个值> = 0和<= getViewCount
        length - 要删除的现有子视图数; 这应该是一个值> = 0和<=(getViewCount() - offset)
        views - 子视图添加; 该值可以是null以表示没有添加子项(可用于删除)
      • layoutColumns

        protected void layoutColumns​(int targetSpan,
                                     int[] offsets,
                                     int[] spans,
                                     SizeRequirements[] reqs)
        将列排出以适应给定的目标范围。 通过offsetsspans返回结果。
        参数
        targetSpan - 所有表列的总计的给定范围
        reqs - 每列所需的要求。 这是最小,优选和最大请求跨度的单元格的最大列数
        spans - 分配给每列的返回值
        offsets - 每列的原点偏移的返回值
      • layoutMinorAxis

        protected void layoutMinorAxis​(int targetSpan,
                                       int axis,
                                       int[] offsets,
                                       int[] spans)
        执行框的短轴的布局(即与其所表示的轴正交的轴)。 布局的结果应放在给定的数组中,这些数组表示沿着短轴分配给子项。 每当布局需要沿着短轴更新时,超类就会调用这个方法。

        这是实现调用layoutColumns方法,然后转发到超类来实际执行表行的布局。

        重写:
        layoutMinorAxisBoxView
        参数
        targetSpan - 给予视图的总跨度,用于布局孩子。
        axis - 轴被 axis
        offsets - 每个子视图的视图原点的偏移量。 这是一个返回值并通过执行此方法填充。
        spans - 每个子视图的跨度。 这是一个返回值并通过执行此方法填充。
      • calculateMinorAxisRequirements

        protected SizeRequirements calculateMinorAxisRequirements​(int axis,
                                                                  SizeRequirements r)
        计算短轴的要求。 当需求需要更新时,这被超类调用(即,一个preferencesChanged被通过这个视图消息)。

        这是为了将需求计算为列的要求的总和来实现的。

        重写:
        calculateMinorAxisRequirementsBoxView
        参数
        axis - 正在研究的轴
        r - SizeRequirements对象; 如果null将创建一个
        结果
        新初始化的 SizeRequirements对象
        另请参见:
        SizeRequirements
      • getViewAtPosition

        protected View getViewAtPosition​(int pos,
                                         Rectangle a)
        获取代表模型中给定位置的子视图。 这是为了走过孩子们寻找包含给定位置的范围。 在这种观点中,孩子们不一定要与子元素进行一对一的映射。
        重写:
        getViewAtPositionCompositeView
        参数
        pos - 搜索位置> = 0
        a - 分配到表中的条目,以及分配视图中包含退出的位置
        结果
        表示给定位置的视图,如果没有, null