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

Class AbstractTableModel

  • All Implemented Interfaces:
    SerializableTableModel
    已知直接子类:
    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); 

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

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

      • AbstractTableModel

        public AbstractTableModel​()
    • 方法详细信息

      • getColumnName

        public String getColumnName​(int column)
        使用电子表格约定返回列的默认名称:A,B,C,... Z,AA,AB等。如果 column ,则返回一个空字符串。
        Specified by:
        getColumnName在接口 TableModel
        参数
        column - 正在查询的列
        结果
        一个包含默认名称为 column的字符串
      • findColumn

        public int findColumn​(String columnName)
        返回一个给定其名称的列。 实现是天真的,所以如果要经常调用这个方法,这应该被覆盖。 这种方法不在TableModel接口中,并没有被JTable
        参数
        columnName - 包含要定位的列的名称的字符串
        结果
        columnName ,如果未找到 columnName -1
      • getColumnClass

        public Class<?> getColumnClass​(int columnIndex)
        无论 Object.class如何返回 columnIndex
        Specified by:
        getColumnClass在接口 TableModel
        参数
        columnIndex - 正在查询的列
        结果
        Object.class
      • addTableModelListener

        public void addTableModelListener​(TableModelListener l)
        将一个监听器添加到每次发生数据模型更改时通知的列表。
        Specified by:
        addTableModelListener在接口 TableModel
        参数
        l - TableModelListener
      • fireTableDataChanged

        public void fireTableDataChanged​()
        通知所有侦听器表格行中的所有单元格值可能已更改。 行数也可能已更改,而JTable应从头重新绘制表。 表的结构(按列的顺序)被假定为相同。
        另请参见:
        TableModelEventEventListenerListJTable.tableChanged(TableModelEvent)
      • fireTableStructureChanged

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

        public void fireTableRowsInserted​(int firstRow,
                                          int lastRow)
        通知所有侦听器已插入的范围为 [firstRow, lastRow] (包括)的行。
        参数
        firstRow - 第一行
        lastRow - 最后一行
        另请参见:
        TableModelEventEventListenerList
      • fireTableRowsUpdated

        public void fireTableRowsUpdated​(int firstRow,
                                         int lastRow)
        通知所有侦听器,范围 [firstRow, lastRow] (包括)中的行已更新。
        参数
        firstRow - 第一行
        lastRow - 最后一行
        另请参见:
        TableModelEventEventListenerList
      • fireTableRowsDeleted

        public void fireTableRowsDeleted​(int firstRow,
                                         int lastRow)
        通知所有侦听器,范围为 [firstRow, lastRow] (包括)的行已被删除。
        参数
        firstRow - 第一行
        lastRow - 最后一行
        另请参见:
        TableModelEventEventListenerList
      • fireTableCellUpdated

        public void fireTableCellUpdated​(int row,
                                         int column)
        通知所有侦听器 [row, column]的单元格值已被更新。
        参数
        row - 已更新的单元格行
        column - 已更新的单元格列
        另请参见:
        TableModelEventEventListenerList
      • getListeners

        public <T extends EventListener> T[] getListeners​(Class<T> listenerType)
        返回当前注册的所有对象的数组FooListener在这个S AbstractTableModel FooListener使用addFooListener注册。

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

          TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class)); 
        如果没有这样的侦听器存在,这个方法返回一个空数组。
        参数类型
        T - 侦听器类型
        参数
        listenerType - 所请求的侦听器的类型
        结果
        在该组件上注册为 FooListener的所有对象的数组,如果未添加此类侦听器,则为空数组
        异常
        ClassCastException - 如果 listenerType未指定实现 java.util.EventListener的类或接口
        从以下版本开始:
        1.3
        另请参见:
        getTableModelListeners()