模块 java.desktop

类 DefaultTableColumnModel

java.lang.Object
javax.swing.table.DefaultTableColumnModel
所有已实现的接口:
PropertyChangeListener , Serializable , EventListener , ListSelectionListener , TableColumnModel

public class DefaultTableColumnModel extends Object implements TableColumnModel , PropertyChangeListener , ListSelectionListener , Serializable
JTable 的标准列处理程序。

Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans 包中。请参阅 XMLEncoder

参见:
  • 字段详细信息

    • tableColumns

      protected Vector <TableColumn > tableColumns
      此模型中的 TableColumn 对象数组
    • selectionModel

      protected ListSelectionModel  selectionModel
      用于跟踪列选择的模型
    • columnMargin

      protected int columnMargin
      每列之间的宽度边距
    • listenerList

      protected EventListenerList  listenerList
      TableColumnModelListener 列表
    • changeEvent

      protected transient ChangeEvent  changeEvent
      更改事件(只需要一个)
    • columnSelectionAllowed

      protected boolean columnSelectionAllowed
      此列模型中允许的列选择
    • totalColumnWidth

      protected int totalColumnWidth
      所有列的组合宽度的本地缓存
  • 构造方法详细信息

    • DefaultTableColumnModel

      public DefaultTableColumnModel()
      创建默认表列模型。
  • 方法详情

    • addColumn

      public void addColumn(TableColumn  aColumn)
      aColumn 附加到 tableColumns 数组的末尾。此方法还将 columnAdded 事件发布到其监听器。
      指定者:
      addColumn 在接口 TableColumnModel
      参数:
      aColumn - 要添加的 TableColumn
      抛出:
      IllegalArgumentException - 如果 aColumnnull
      参见:
    • removeColumn

      public void removeColumn(TableColumn  column)
      tableColumns 数组中删除 column。如果 column 不在表的列列表中,此方法将不执行任何操作。 tile 被调用以调整标题和表格视图的大小。此方法还会向其监听器发布一个 columnRemoved 事件。
      指定者:
      removeColumn 在接口 TableColumnModel
      参数:
      column - 要删除的 TableColumn
      参见:
    • moveColumn

      public void moveColumn(int columnIndex, int newIndex)
      columnIndex 处的列和标题移动到 newIndex 。位于 columnIndex 的旧列现在可以在 newIndex 找到。以前位于 newIndex 的列向左或向右移动以腾出空间。如果 columnIndex 等于 newIndex,这将不会移动任何列。此方法还会向其监听器发布一个 columnMoved 事件。
      指定者:
      moveColumn 在接口 TableColumnModel
      参数:
      columnIndex - 要移动的列的索引
      newIndex - 移动列的新索引
      抛出:
      IllegalArgumentException - 如果 columnnewIndex 不在有效范围内
    • setColumnMargin

      public void setColumnMargin(int newMargin)
      将列边距设置为 newMargin 。此方法还会向其监听器发布一个 columnMarginChanged 事件。
      指定者:
      setColumnMargin 在接口 TableColumnModel
      参数:
      newMargin - 新的边距宽度,以像素为单位
      参见:
    • getColumnCount

      public int getColumnCount()
      返回 tableColumns 数组中的列数。
      指定者:
      getColumnCount 在接口 TableColumnModel
      返回:
      tableColumns 数组中的列数
      参见:
    • getColumns

      public Enumeration <TableColumn > getColumns()
      返回模型中所有列的 Enumeration
      指定者:
      getColumns 在接口 TableColumnModel
      返回:
      模型中列的 Enumeration
    • getColumnIndex

      public int getColumnIndex(Object  identifier)
      使用 equals 进行比较时,返回标识符等于 identifiertableColumns 数组中第一列的索引。
      指定者:
      getColumnIndex 在接口 TableColumnModel
      参数:
      identifier - 标识符对象
      返回:
      tableColumns 数组中第一列的索引,其标识符等于 identifier
      抛出:
      IllegalArgumentException - 如果 identifiernull ,或者如果没有 TableColumn 有这个 identifier
      参见:
    • getColumn

      public TableColumn  getColumn(int columnIndex)
      返回 columnIndex 处列的 TableColumn 对象。
      指定者:
      getColumn 在接口 TableColumnModel
      参数:
      columnIndex - 所需列的索引
      返回:
      columnIndex 处列的 TableColumn 对象
      抛出:
      ArrayIndexOutOfBoundsException - 如果 columnIndex 超出范围:(columnIndex < 0 || columnIndex >= getColumnCount())
    • getColumnMargin

      public int getColumnMargin()
      返回 TableColumn 的宽度边距。默认 columnMargin 为 1。
      指定者:
      getColumnMargin 在接口 TableColumnModel
      返回:
      TableColumn 的最大宽度
      参见:
    • getColumnIndexAtX

      public int getColumnIndexAtX(int x)
      返回位于位置 x 的列的索引,如果没有列覆盖该点,则返回 -1。为了与 Swing 的可分离模型架构保持一致,TableColumnModel 不知道表列在屏幕上的实际显示方式。列的视觉呈现是使用此模型(通常是 JTable)的视图/控制器对象的责任。视图/控制器不需要从左到右顺序显示列。例如,列可以从右到左显示以适应locale首选项,或者某些列可以根据用户的请求隐藏。因为模型不知道列在屏幕上的布局方式,所以给定的 xPosition 不应被视为 2D 图形空间中的坐标。相反,它应该被认为是从模型中第一列开始的宽度。如果需要二维空间中给定 X 坐标的列索引,则可以使用 JTable.columnAtPoint 代替。
      指定者:
      getColumnIndexAtX 在接口 TableColumnModel
      参数:
      x - 感兴趣的水平位置
      返回:
      列的索引,如果未找到列,则为 -1
      参见:
    • getTotalColumnWidth

      public int getTotalColumnWidth()
      返回所有列的总组合宽度。
      指定者:
      getTotalColumnWidth 在接口 TableColumnModel
      返回:
      totalColumnWidth 属性
    • setSelectionModel

      public void setSelectionModel(ListSelectionModel  newModel)
      将此 TableColumnModel 的选择模型设置为 newModel 并注册来自新选择模型的监听器通知。如果 newModelnull,则抛出异常。
      指定者:
      setSelectionModel 在接口 TableColumnModel
      参数:
      newModel - 新的选择模型
      抛出:
      IllegalArgumentException - 如果 newModelnull
      参见:
    • getSelectionModel

      public ListSelectionModel  getSelectionModel()
      返回用于维护列选择状态的ListSelectionModel
      指定者:
      getSelectionModel 在接口 TableColumnModel
      返回:
      提供列选择状态的对象。或者 null 如果不允许行选择。
      参见:
    • setColumnSelectionAllowed

      public void setColumnSelectionAllowed(boolean flag)
      设置是否允许列选择。默认为假。
      指定者:
      setColumnSelectionAllowed 在接口 TableColumnModel
      参数:
      flag - 如果允许列选择则为真,否则为假
      参见:
    • getColumnSelectionAllowed

      public boolean getColumnSelectionAllowed()
      如果允许列选择,则返回 true,否则返回 false。默认为假。
      指定者:
      getColumnSelectionAllowed 在接口 TableColumnModel
      返回:
      columnSelectionAllowed 属性
      参见:
    • getSelectedColumns

      public int[] getSelectedColumns()
      返回选定列的数组。如果 selectionModelnull ,则返回一个空数组。
      指定者:
      getSelectedColumns 在接口 TableColumnModel
      返回:
      选定列的数组或空数组(如果未选择任何内容或 selectionModelnull
    • getSelectedColumnCount

      public int getSelectedColumnCount()
      返回选定的列数。
      指定者:
      getSelectedColumnCount 在接口 TableColumnModel
      返回:
      选择的列数
    • addColumnModelListener

      public void addColumnModelListener(TableColumnModelListener  x)
      为表列模型事件添加一个监听。
      指定者:
      addColumnModelListener 在接口 TableColumnModel
      参数:
      x - 一个 TableColumnModelListener 对象
    • removeColumnModelListener

      public void removeColumnModelListener(TableColumnModelListener  x)
      删除表列模型事件的监听。
      指定者:
      removeColumnModelListener 在接口 TableColumnModel
      参数:
      x - 一个 TableColumnModelListener 对象
    • getColumnModelListeners

      public TableColumnModelListener [] getColumnModelListeners()
      返回在此模型上注册的所有列模型监听的数组。
      返回:
      所有此默认表列模型的 ColumnModelListener s 或空数组(如果当前未注册列模型监听器)
      自从:
      1.4
      参见:
    • fireColumnAdded

      protected void fireColumnAdded(TableColumnModelEvent  e)
      通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。
      参数:
      e - 收到的事件
      参见:
    • fireColumnRemoved

      protected void fireColumnRemoved(TableColumnModelEvent  e)
      通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。
      参数:
      e - 收到的事件
      参见:
    • fireColumnMoved

      protected void fireColumnMoved(TableColumnModelEvent  e)
      通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。
      参数:
      e - 收到的事件
      参见:
    • fireColumnSelectionChanged

      protected void fireColumnSelectionChanged(ListSelectionEvent  e)
      通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。
      参数:
      e - 收到的事件
      参见:
    • fireColumnMarginChanged

      protected void fireColumnMarginChanged()
      通知所有已注册对此事件类型的通知感兴趣的监听。事件实例是使用传递给 fire 方法的参数延迟创建的。
      参见:
    • getListeners

      public <T extends EventListener > T[] getListeners(Class <T> listenerType)
      返回当前在此模型上注册为 FooListener 的所有对象的数组。 FooListener 是使用 addFooListener 方法注册的。

      您可以使用类文字指定 listenerType 参数,例如 FooListener.class 。例如,您可以使用以下代码查询 DefaultTableColumnModel m 的列模型监听器:

      ColumnModelListener[] cmls = (ColumnModelListener[])(m.getListeners(ColumnModelListener.class));
      如果不存在这样的监听器,则此方法返回一个空数组。
      类型参数:
      T - 监听器类型
      参数:
      listenerType - 请求的监听器类型
      返回:
      在此模型上注册为 FooListener 的所有对象的数组,如果没有添加此类监听器,则为空数组
      抛出:
      ClassCastException - 如果 listenerType 没有指定实现 java.util.EventListener 的类或接口
      自从:
      1.3
      参见:
    • propertyChange

      public void propertyChange(PropertyChangeEvent  evt)
      属性更改监听更改方法。用于跟踪对列宽或首选列宽的更改。
      指定者:
      propertyChange 在接口 PropertyChangeListener
      参数:
      evt - PropertyChangeEvent
    • valueChanged

      public void valueChanged(ListSelectionEvent  e)
      一个 ListSelectionListener,它在列选择更改时转发 ListSelectionEvents
      指定者:
      valueChanged 在接口 ListSelectionListener
      参数:
      e - 更改事件
    • createSelectionModel

      protected ListSelectionModel  createSelectionModel()
      创建一个新的默认列表选择模型。
      返回:
      新创建的默认列表选择模型。
    • recalcWidthCache

      protected void recalcWidthCache()
      重新计算所有列的总组合宽度。更新 totalColumnWidth 属性。