- 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 EventListenerList
listenerList
听众列表
-
构造方法摘要
构造方法 Constructor 描述 AbstractTableModel()
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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,...<T extends EventListener>
T[]getListeners(Class<T> listenerType)
返回当前注册为FooListener
的所有对象的数组,此AbstractTableModel
。TableModelListener[]
getTableModelListeners()
返回在此模型上注册的所有表模型侦听器的数组。boolean
isCellEditable(int rowIndex, int columnIndex)
返回false。void
removeTableModelListener(TableModelListener l)
从每次发生数据模型更改时通知的列表中移除侦听器。void
setValueAt(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()
返回在此模型上注册的所有表模型侦听器的数组。- 结果
-
所有这个模型的
TableModelListener
s或一个空数组,如果没有表模型侦听器当前注册 - 从以下版本开始:
- 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()
-
-