- 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软件包中添加了对所有JavaBeansjava.beans长期存储的支持。 请参阅XMLEncoder。- 另请参见:
- Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 protected EventListenerListlistenerList听众列表
-
构造方法摘要
构造方法 构造器 描述 AbstractTableModel()
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 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](包括[firstRow, lastRow]中的行。voidfireTableRowsInserted(int firstRow, int lastRow)通知所有侦听器已插入范围[firstRow, lastRow](包括[firstRow, lastRow]中的行。voidfireTableRowsUpdated(int firstRow, int lastRow)通知所有侦听器已更新[firstRow, lastRow]范围内的行。voidfireTableStructureChanged()通知所有侦听器表的结构已更改。类<?>getColumnClass(int columnIndex)无论Object.class如何,columnIndex返回columnIndex。StringgetColumnName(int column)使用电子表格约定返回列的默认名称:A,B,C,...<T extends EventListener>
T[]getListeners(类<T> listenerType)返回此AbstractTableModel当前注册为FooListener的所有对象的数组。TableModelListener[]getTableModelListeners()返回在此模型上注册的所有表模型侦听器的数组。booleanisCellEditable(int rowIndex, int columnIndex)返回false。voidremoveTableModelListener(TableModelListener l)从每次发生数据模型更改时通知的列表中删除侦听器。voidsetValueAt(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
听众列表
-
-
方法详细信息
-
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
-
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()
返回在此模型上注册的所有表模型侦听器的数组。- 结果
-
如果当前没有注册表模型侦听器,则所有此模型的
TableModelListener或空数组 - 从以下版本开始:
- 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)上的JTable。- 另请参见:
-
TableModelEvent,EventListenerList
-
fireTableRowsInserted
public void fireTableRowsInserted(int firstRow, int lastRow)通知所有侦听器已插入范围[firstRow, 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]中的行。- 参数
-
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(类<T> listenerType)
返回当前注册的所有对象的数组FooListener在这个SAbstractTableModel。FooListeners使用addFooListener方法注册。您可以使用类文字指定
listenerType参数,例如FooListener.class。 例如,您可以使用以下代码查询模型m以获取其表模型侦听器:TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));如果不存在此类侦听器,则此方法返回空数组。- 参数类型
-
T- 侦听器类型 - 参数
-
listenerType- 请求的侦听器类型 - 结果
-
此组件上注册为
FooListener的所有对象的数组,如果未添加此类侦听器,则为空数组 - 异常
-
ClassCastException- 如果listenerType未指定实现java.util.EventListener的类或接口 - 从以下版本开始:
- 1.3
- 另请参见:
-
getTableModelListeners()
-
-