模块  java.desktop
软件包  javax.swing.table

Class AbstractTableModel

  • 实现的所有接口
    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开始, java.beans软件包中添加了对所有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 <?> getColumnClass​(int columnIndex)
        返回 Object.class不管 columnIndex
        Specified by:
        getColumnClass在界面 TableModel
        参数
        columnIndex - 要查询的列
        结果
        Object.class
      • fireTableDataChanged

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

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

        public void fireTableRowsInserted​(int firstRow,
                                          int lastRow)
        通知所有侦听器已插入范围 [firstRow, 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]中的行。
        参数
        firstRow - 第一行
        lastRow - 最后一行
        另请参见:
        TableModelEventEventListenerList
      • fireTableCellUpdated

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

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

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

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