JavaTM Platform
Standard Ed. 6

javax.swing.table
类 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);
  

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


字段摘要
protected  EventListenerList listenerList
          侦听器的列表
 
构造方法摘要
AbstractTableModel()
           
 
方法摘要
 void addTableModelListener(TableModelListener l)
          每次数据模型发生更改时,就向被通知的列表添加一个侦听器。
 int findColumn(String columnName)
          返回具有给定名称的列。
 void fireTableCellUpdated(int row, int column)
          通知所有侦听器,已更新 [row, column] 处的单元格值。
 void fireTableChanged(TableModelEvent e)
          将给定的通知事件转发到所有将自身注册为此表模型的侦听器的 TableModelListeners
 void fireTableDataChanged()
          通知所有侦听器,表的所有行单元格值可能已更改。
 void fireTableRowsDeleted(int firstRow, int lastRow)
          通知所有侦听器,已删除范围在 [firstRow, lastRow](包括)的行。
 void fireTableRowsInserted(int firstRow, int lastRow)
          通知所有侦听器,已插入范围在 [firstRow, lastRow](包括)的行。
 void fireTableRowsUpdated(int firstRow, int lastRow)
          通知所有侦听器,已更新范围在 [firstRow, lastRow](包括)的行。
 void fireTableStructureChanged()
          通知所有侦听器,表的结构已更改。
 Class<?> getColumnClass(int columnIndex)
          返回 Object.class 而不管 columnIndex 是多少。
 String getColumnName(int column)
          返回列默认名称,其中列使用以下工作表约定:A、B、C……Z、AA、AB 等等。
<T extends EventListener>
T[]
getListeners(Class<T> listenerType)
          返回一个包含当前注册为此 AbstractTableModel 上的 FooListener 的所有对象的数组。
 TableModelListener[] getTableModelListeners()
          返回一个包含在此模型上注册的所有表模型侦听器的数组。
 boolean isCellEditable(int rowIndex, int columnIndex)
          返回 false。
 void removeTableModelListener(TableModelListener l)
          每次数据模型发生更改时,就从被通知的列表移除一个侦听器。
 void setValueAt(Object aValue, int rowIndex, int columnIndex)
          由于提供了此空实现,因此,如果用户的数据模型是不可编辑的,则他们不必实现此方法。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
从接口 javax.swing.table.TableModel 继承的方法
getColumnCount, getRowCount, getValueAt
 

字段详细信息

listenerList

protected EventListenerList listenerList
侦听器的列表

构造方法详细信息

AbstractTableModel

public AbstractTableModel()
方法详细信息

getColumnName

public String getColumnName(int column)
返回列默认名称,其中列使用以下工作表约定:A、B、C……Z、AA、AB 等等。如果无法找到 column,则返回一个空字符串。

指定者:
接口 TableModel 中的 getColumnName
参数:
column - 被查询的列
返回:
包含 column 默认名称的字符串

findColumn

public int findColumn(String columnName)
返回具有给定名称的列。由于实现是未用过的,因此,如果经常调用此方法,则应该重写此方法。此方法不在 TableModel 接口中,也不被 JTable 使用。

参数:
columnName - 包含要查找的列名称的字符串
返回:
名称为 columnName 的列,如果未找到该列,则返回 -1

getColumnClass

public Class<?> getColumnClass(int columnIndex)
返回 Object.class 而不管 columnIndex 是多少。

指定者:
接口 TableModel 中的 getColumnClass
参数:
columnIndex - 被查询的列
返回:
Object.class

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
返回 false。这是所有单元格的默认实现。

指定者:
接口 TableModel 中的 isCellEditable
参数:
rowIndex - 被查询的行
columnIndex - 被查询的列
返回:
false
另请参见:
TableModel.setValueAt(java.lang.Object, int, int)

setValueAt

public void setValueAt(Object aValue,
                       int rowIndex,
                       int columnIndex)
由于提供了此空实现,因此,如果用户的数据模型是不可编辑的,则他们不必实现此方法。

指定者:
接口 TableModel 中的 setValueAt
参数:
aValue - 要分配给单元格的值
rowIndex - 单元格所在行
columnIndex - 单元格所在列
另请参见:
TableModel.getValueAt(int, int), TableModel.isCellEditable(int, int)

addTableModelListener

public void addTableModelListener(TableModelListener l)
每次数据模型发生更改时,就向被通知的列表添加一个侦听器。

指定者:
接口 TableModel 中的 addTableModelListener
参数:
l - TableModelListener

removeTableModelListener

public void removeTableModelListener(TableModelListener l)
每次数据模型发生更改时,就从被通知的列表移除一个侦听器。

指定者:
接口 TableModel 中的 removeTableModelListener
参数:
l - TableModelListener

getTableModelListeners

public TableModelListener[] getTableModelListeners()
返回一个包含在此模型上注册的所有表模型侦听器的数组。

返回:
此模型的所有 TableModelListener,如果当前没有已注册的表模型侦听器,则返回一个空数组
从以下版本开始:
1.4
另请参见:
addTableModelListener(javax.swing.event.TableModelListener), removeTableModelListener(javax.swing.event.TableModelListener)

fireTableDataChanged

public void fireTableDataChanged()
通知所有侦听器,表的所有行单元格值可能已更改。行数也可能已更改,并且 JTable 应该从头开始重新绘制该表。假定表的结构(如同列的顺序)是相同的。

另请参见:
TableModelEvent, EventListenerList, JTable.tableChanged(TableModelEvent)

fireTableStructureChanged

public void fireTableStructureChanged()
通知所有侦听器,表的结构已更改。表中的列数,新列的名称和类型可能与以前的状态不同。如果 JTable 接收此事件,并且设置了其 autoCreateColumnsFromModel 标志,则它丢弃之前具有的所有表列,并按列在模型中出现的顺序重新分配默认列。这与对 JTable 调用 setModel(TableModel) 具有相同的效果。

另请参见:
TableModelEvent, EventListenerList

fireTableRowsInserted

public void fireTableRowsInserted(int firstRow,
                                  int lastRow)
通知所有侦听器,已插入范围在 [firstRow, lastRow](包括)的行。

参数:
firstRow - 第一行
lastRow - 最后一行
另请参见:
TableModelEvent, EventListenerList

fireTableRowsUpdated

public void fireTableRowsUpdated(int firstRow,
                                 int lastRow)
通知所有侦听器,已更新范围在 [firstRow, lastRow](包括)的行。

参数:
firstRow - 第一行
lastRow - 最后一行
另请参见:
TableModelEvent, EventListenerList

fireTableRowsDeleted

public void fireTableRowsDeleted(int firstRow,
                                 int lastRow)
通知所有侦听器,已删除范围在 [firstRow, lastRow](包括)的行。

参数:
firstRow - 第一行
lastRow - 最后一行
另请参见:
TableModelEvent, EventListenerList

fireTableCellUpdated

public void fireTableCellUpdated(int row,
                                 int column)
通知所有侦听器,已更新 [row, column] 处的单元格值。

参数:
row - 已更新的单元格所在行
column - 已更新的单元格所在列
另请参见:
TableModelEvent, EventListenerList

fireTableChanged

public void fireTableChanged(TableModelEvent e)
将给定的通知事件转发到所有将自身注册为此表模型的侦听器的 TableModelListeners

参数:
e - 要转发的事件
另请参见:
addTableModelListener(javax.swing.event.TableModelListener), TableModelEvent, EventListenerList

getListeners

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

可以使用 class 字面值(如 FooListener.class)来指定 listenerType 参数。例如,可以通过以下代码查询模型 m,以获得其表模型侦听器:

TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));
如果不存在这样的侦听器,则此方法将返回一个空数组。

参数:
listenerType - 所请求侦听器的类型;此参数应该指定一个从 java.util.EventListener 继承的接口
返回:
在此组件上注册为 FooListener 的所有对象组成的数组,如果没有添加这样的侦听器,则返回一个空数组
抛出:
ClassCastException - 如果 listenerType 没有指定实现 java.util.EventListener 的类或接口
从以下版本开始:
1.3
另请参见:
getTableModelListeners()

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策