- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- All Implemented Interfaces:
-
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开始,支持所有JavaBeans的长期存储已被添加到
java.beans包中。 请参阅XMLEncoder。- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 protected EventListenerListlistenerList听众列表
-
构造方法摘要
构造方法 Constructor 描述 AbstractTableModel()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidaddTableModelListener(TableModelListener l)将一个监听器添加到每次发生数据模型更改时通知的列表。intfindColumn(String columnName)返回一个给定其名称的列。voidfireTableCellUpdated(int row, int column)通知所有侦听器[row, column]的单元格值已被更新。voidfireTableChanged(TableModelEvent e)将给定的通知事件转发给所有注册为此表模型的监听器的TableModelListeners。voidfireTableDataChanged()通知所有侦听器表格行中的所有单元格值可能已更改。voidfireTableRowsDeleted(int firstRow, int lastRow)通知所有侦听器,已删除[firstRow, lastRow](含)范围内的行。voidfireTableRowsInserted(int firstRow, int lastRow)通知所有侦听器,已插入范围为[firstRow, lastRow](含)的行。voidfireTableRowsUpdated(int firstRow, int lastRow)通知所有侦听器,范围为[firstRow, lastRow](包括)的行已更新。voidfireTableStructureChanged()通知所有侦听器表的结构已更改。Class<?>getColumnClass(int columnIndex)无论Object.class如何返回columnIndex。StringgetColumnName(int column)使用电子表格约定返回列的默认名称:A,B,C,...<T extends EventListener>
T[]getListeners(Class<T> listenerType)返回当前注册为FooListener的所有对象的数组,此AbstractTableModel。TableModelListener[]getTableModelListeners()返回在此模型上注册的所有表模型侦听器的数组。booleanisCellEditable(int rowIndex, int columnIndex)返回false。voidremoveTableModelListener(TableModelListener l)从每次发生数据模型更改时通知的列表中移除侦听器。voidsetValueAt(Object aValue, int rowIndex, int columnIndex)这个空的实现被提供,所以如果用户的数据模型是不可编辑的,用户就不需要实现这个方法。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface javax.swing.table.TableModel
getColumnCount, getRowCount, getValueAt
-
-
-
-
字段详细信息
-
listenerList
protected EventListenerList listenerList
听众列表
-
-
方法详细信息
-
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
-
isCellEditable
public boolean isCellEditable(int rowIndex, int columnIndex)返回false。 这是所有单元格的默认实现。- Specified by:
-
isCellEditable在接口TableModel - 参数
-
rowIndex- 正在查询的行 -
columnIndex- 正在查询的列 - 结果
- 假
- 另请参见:
-
TableModel.setValueAt(java.lang.Object, int, int)
-
setValueAt
public void setValueAt(Object aValue, int rowIndex, int columnIndex)
这个空的实现被提供,所以如果用户的数据模型是不可编辑的,用户就不需要实现这个方法。- Specified by:
-
setValueAt在接口TableModel - 参数
-
aValue- 分配给单元格的值 -
rowIndex- 行单元格 -
columnIndex- 单元格列 - 另请参见:
-
TableModel.getValueAt(int, int),TableModel.isCellEditable(int, int)
-
addTableModelListener
public void addTableModelListener(TableModelListener l)
将一个监听器添加到每次发生数据模型更改时通知的列表。- Specified by:
-
addTableModelListener在接口TableModel - 参数
-
l- TableModelListener
-
removeTableModelListener
public void removeTableModelListener(TableModelListener l)
从每次发生数据模型更改时通知的列表中移除侦听器。- Specified by:
-
removeTableModelListener在接口TableModel - 参数
-
l- TableModelListener
-
getTableModelListeners
public TableModelListener[] getTableModelListeners()
返回在此模型上注册的所有表模型侦听器的数组。- 结果
-
所有这个模型的
TableModelListeners或一个空数组,如果没有表模型侦听器当前注册 - 从以下版本开始:
- 1.4
- 另请参见:
-
addTableModelListener(javax.swing.event.TableModelListener),removeTableModelListener(javax.swing.event.TableModelListener)
-
fireTableDataChanged
public void fireTableDataChanged()
通知所有侦听器表格行中的所有单元格值可能已更改。 行数也可能已更改,而JTable应从头重新绘制表。 表的结构(按列的顺序)被假定为相同。
-
fireTableStructureChanged
public void fireTableStructureChanged()
通知所有侦听器表的结构已更改。 表中的列数以及新列的名称和类型可能与先前的状态不同。 如果JTable收到此事件并且其autoCreateColumnsFromModel标志被设置,它会丢弃它所拥有的任何表列,并按照它们在模型中显示的顺序重新分配默认列。 这和在setModel(TableModel)上拨打setModel(TableModel)JTable。- 另请参见:
-
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)
返回当前注册的所有对象的数组FooListener在这个SAbstractTableModel。FooListener使用addFooListener注册。您可以使用类文字指定
listenerType参数,如FooListener.class。 例如,您可以使用以下代码查询模型m的表模型侦听器:TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));如果没有这样的侦听器存在,这个方法返回一个空数组。- 参数类型
-
T- 侦听器类型 - 参数
-
listenerType- 所请求的侦听器的类型 - 结果
-
在该组件上注册为
FooListener的所有对象的数组,如果未添加此类侦听器,则为空数组 - 异常
-
ClassCastException- 如果listenerType未指定实现java.util.EventListener的类或接口 - 从以下版本开始:
- 1.3
- 另请参见:
-
getTableModelListeners()
-
-