模块 java.desktop

类 AbstractTableModel

java.lang.Object
javax.swing.table.AbstractTableModel
所有已实现的接口:
Serializable , TableModel
已知子类:
DefaultTableModel

public abstract class AbstractTableModel extends Object implements TableModel , Serializable
这个抽象类为 TableModel 接口中的大多数方法提供默认实现。它负责监听器的管理,并为生成TableModelEvents并将它们分派给监听器提供一些便利。要创建一个具体的 TableModel 作为 AbstractTableModel 的子类,您只需要为以下三个方法提供实现:
 public int getRowCount();
 public int getColumnCount();
 public Object getValueAt(int row, int column);
 

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

  • 字段详细信息

  • 构造方法详细信息

    • AbstractTableModel

      protected AbstractTableModel()
      子类调用的构造方法。
  • 方法详情

    • getColumnName

      public String  getColumnName(int column)
      使用电子表格约定返回列的默认名称:A、B、C、... Z、AA、AB 等。如果找不到 column,则返回空字符串。
      指定者:
      getColumnName 在接口 TableModel
      参数:
      column - 被查询的列
      返回:
      包含默认名称 column 的字符串
    • findColumn

      public int findColumn(String  columnName)
      返回给定名称的列。实现是幼稚的,因此如果要经常调用此方法,则应覆盖它。此方法不在 TableModel 接口中,也不被 JTable 使用。
      参数:
      columnName - 包含要定位的列名称的字符串
      返回:
      带有 columnName 的列,如果未找到则为 -1
    • getColumnClass

      public Class <?> getColumnClass(int columnIndex)
      返回 Object.class 而不管 columnIndex
      指定者:
      getColumnClass 在接口 TableModel
      参数:
      columnIndex - 被查询的列
      返回:
      对象类
    • isCellEditable

      public boolean isCellEditable(int rowIndex, int columnIndex)
      返回错误。这是所有单元格的默认实现。
      指定者:
      isCellEditable 在接口 TableModel
      参数:
      rowIndex - 被查询的行
      columnIndex - 被查询的列
      返回:
      false
      参见:
    • setValueAt

      public void setValueAt(Object  aValue, int rowIndex, int columnIndex)
      提供此空实现是为了让用户在其数据模型不可编辑时不必实现此方法。
      指定者:
      setValueAt 在接口 TableModel
      参数:
      aValue - 分配给单元格的值
      rowIndex - 单元格行
      columnIndex - 单元格列
      参见:
    • addTableModelListener

      public void addTableModelListener(TableModelListener  l)
      将监听添加到每次数据模型发生更改时都会收到通知的列表。
      指定者:
      addTableModelListener 在接口 TableModel
      参数:
      l - TableModelListener
    • removeTableModelListener

      public void removeTableModelListener(TableModelListener  l)
      从每次数据模型发生更改时收到通知的列表中删除监听。
      指定者:
      removeTableModelListener 在接口 TableModel
      参数:
      l - TableModelListener
    • getTableModelListeners

      public TableModelListener [] getTableModelListeners()
      返回在此模型上注册的所有表模型监听的数组。
      返回:
      此模型的所有 TableModelListener s 或空数组(如果当前未注册表模型监听器)
      自从:
      1.4
      参见:
    • fireTableDataChanged

      public void fireTableDataChanged()
      通知所有监听器表格行中的所有单元格值可能已更改。行数也可能发生变化,JTable 应该从头开始重新绘制表格。假定表的结构(如列的顺序)相同。
      参见:
    • fireTableStructureChanged

      public void fireTableStructureChanged()
      通知所有监听器表的结构已更改。表中的列数,以及新列的名称和类型可能与以前的状态不同。如果 JTable 接收到此事件并且设置了它的 autoCreateColumnsFromModel 标志,它会丢弃它拥有的任何表列,并按照它们在模型中出现的顺序重新分配默认列。这与在 JTable 上调用 setModel(TableModel) 相同。
      参见:
    • fireTableRowsInserted

      public void fireTableRowsInserted(int firstRow, int lastRow)
      通知所有监听器已插入 [firstRow, lastRow] 范围内的行(含)。
      参数:
      firstRow - 第一行
      lastRow - 最后一行
      参见:
    • fireTableRowsUpdated

      public void fireTableRowsUpdated(int firstRow, int lastRow)
      通知所有监听器 [firstRow, lastRow] 范围内的行(含)已更新。
      参数:
      firstRow - 第一行
      lastRow - 最后一行
      参见:
    • fireTableRowsDeleted

      public void fireTableRowsDeleted(int firstRow, int lastRow)
      通知所有监听器 [firstRow, lastRow] 范围内的行(含)已被删除。
      参数:
      firstRow - 第一行
      lastRow - 最后一行
      参见:
    • fireTableCellUpdated

      public void fireTableCellUpdated(int row, int column)
      通知所有监听器 [row, column] 处的单元格值已更新。
      参数:
      row - 已更新的单元格行
      column - 已更新的单元格列
      参见:
    • fireTableChanged

      public void fireTableChanged(TableModelEvent  e)
      将给定的通知事件转发给所有将自己注册为该表模型的监听器的TableModelListeners
      参数:
      e - 要转发的事件
      参见:
    • getListeners

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

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

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