- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- 实现的所有接口
-
Serializable
,TableModel
- 已知直接子类:
-
DefaultTableModel
public abstract class AbstractTableModelextends Objectimplements 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 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]
(包括[firstRow, lastRow]
中的行。void
fireTableRowsInserted(int firstRow, int lastRow)
通知所有侦听器已插入范围[firstRow, lastRow]
(包括[firstRow, lastRow]
中的行。void
fireTableRowsUpdated(int firstRow, int lastRow)
通知所有侦听器已更新[firstRow, lastRow]
范围内的行。void
fireTableStructureChanged()
通知所有侦听器表的结构已更改。类<?>
getColumnClass(int columnIndex)
无论Object.class
如何,columnIndex
返回columnIndex
。String
getColumnName(int column)
使用电子表格约定返回列的默认名称:A,B,C,...<T extends EventListener>
T[]getListeners(类<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
听众列表
-
-
方法详细信息
-
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
。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()
-
-