java.lang.Object
javax.swing.table.AbstractTableModel
- 所有已实现的接口:
-
Serializable,TableModel
- 直接已知的子类:
-
DefaultTableModel
这个抽象类为
TableModel接口中的大多数方法提供了默认实现。它负责管理监听器并提供一些便利来生成TableModelEvents并将其分派给监听器。要创建一个作为AbstractTableModel子类的具体TableModel,您只需要为以下三个方法提供实现:
public int getRowCount(); public int getColumnCount(); public Object getValueAt(int row, int column);
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。请参见XMLEncoder。
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid向列表中添加一个监听器,每当数据模型发生更改时通知。intfindColumn(String columnName) 根据名称返回列。voidfireTableCellUpdated(int row, int column) 通知所有监听器,位于[row, column]位置的单元格的值已更新。void将给定的通知事件转发给所有为此表格模型注册为监听器的TableModelListeners。void通知所有监听器,表格行中所有单元格的值可能已更改。voidfireTableRowsDeleted(int firstRow, int lastRow) 通知所有监听器,范围为[firstRow, lastRow](包括)的行已被删除。voidfireTableRowsInserted(int firstRow, int lastRow) 通知所有监听器,范围为[firstRow, lastRow](包括)的行已被插入。voidfireTableRowsUpdated(int firstRow, int lastRow) 通知所有监听器,范围为[firstRow, lastRow](包括)的行已更新。void通知所有监听器,表格的结构已更改。Class<?> getColumnClass(int columnIndex) 返回Object.class,无论columnIndex如何。getColumnName(int column) 使用电子表格约定返回列的默认名称:A,B,C,...<T extends EventListener>
T[]getListeners(Class<T> listenerType) 返回当前注册为FooListener的所有对象数组,该数组在AbstractTableModel上。返回在此模型上注册的所有表格模型监听器的数组。booleanisCellEditable(int rowIndex, int columnIndex) 返回false。void从列表中删除一个监听器,每当数据模型发生更改时通知。voidsetValueAt(Object aValue, int rowIndex, int columnIndex) 提供此空实现,以便用户无需实现此方法,如果他们的数据模型不可编辑。Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods declared in interface javax.swing.table.TableModel
getColumnCount, getRowCount, getValueAt
-
Field Details
-
listenerList
监听器列表
-
-
Constructor Details
-
AbstractTableModel
protected AbstractTableModel()子类调用的构造函数。
-
-
Method Details
-
getColumnName
使用电子表格约定返回列的默认名称:A,B,C,... Z,AA,AB等。如果找不到column,则返回空字符串。- 指定者:
-
getColumnName在接口TableModel中 - 参数:
-
column- 正在查询的列 - 返回:
-
包含
column的默认名称的字符串
-
findColumn
根据名称返回列。如果经常调用此方法,则应重写实现。此方法不在TableModel接口中,并且JTable不使用此方法。- 参数:
-
columnName- 包含要定位的列名称的字符串 - 返回:
-
具有
columnName的列,如果未找到则返回-1
-
getColumnClass
返回Object.class,无论columnIndex如何。- 指定者:
-
getColumnClass在接口TableModel中 - 参数:
-
columnIndex- 正在查询的列 - 返回:
-
Object.class
-
isCellEditable
public boolean isCellEditable(int rowIndex, int columnIndex) 返回false。这是所有单元格的默认实现。- 指定者:
-
isCellEditable在接口TableModel中 - 参数:
-
rowIndex- 正在查询的行 -
columnIndex- 正在查询的列 - 返回:
- false
- 参见:
-
setValueAt
提供此空实现,以便用户无需实现此方法,如果他们的数据模型不可编辑。- 指定者:
-
setValueAt在接口TableModel中 - 参数:
-
aValue- 要分配给单元格的值 -
rowIndex- 单元格的行 -
columnIndex- 单元格的列 - 参见:
-
addTableModelListener
向列表中添加一个监听器,每当数据模型发生更改时通知。- 指定者:
-
addTableModelListener在接口TableModel中 - 参数:
-
l- TableModelListener
-
removeTableModelListener
从列表中删除一个监听器,每当数据模型发生更改时通知。- 指定者:
-
removeTableModelListener在接口TableModel中 - 参数:
-
l- TableModelListener
-
getTableModelListeners
返回在此模型上注册的所有表格模型监听器的数组。- 返回:
-
所有此模型的
TableModelListener或如果当前未注册任何表格模型监听器,则返回空数组 - 自1.4起:
- 1.4
- 参见:
-
fireTableDataChanged
public void fireTableDataChanged()通知所有监听器,表格行中所有单元格的值可能已更改。行数也可能已更改,JTable应该从头开始重新绘制表格。假定表格的结构(如列的顺序)保持不变。- 参见:
-
fireTableStructureChanged
public void fireTableStructureChanged()通知所有监听器,表格的结构已更改。表格中的列数,新列的名称和类型可能与先前状态不同。如果JTable接收到此事件并且其autoCreateColumnsFromModel标志已设置,则它会丢弃任何已有的表格列,并按照它们在模型中出现的顺序重新分配默认列。这与在JTable上调用setModel(TableModel)相同。- 参见:
-
fireTableRowsInserted
public void fireTableRowsInserted(int firstRow, int lastRow) 通知所有监听器,范围为[firstRow, lastRow](包括)的行已插入。- 参数:
-
firstRow- 第一行 -
lastRow- 最后一行 - 参见:
-
fireTableRowsUpdated
public void fireTableRowsUpdated(int firstRow, int lastRow) 通知所有监听器,范围为[firstRow, lastRow](包括)的行已更新。- 参数:
-
firstRow- 第一行 -
lastRow- 最后一行 - 参见:
-
fireTableRowsDeleted
public void fireTableRowsDeleted(int firstRow, int lastRow) 通知所有监听器,范围为[firstRow, lastRow](包括)的行已删除。- 参数:
-
firstRow- 第一行 -
lastRow- 最后一行 - 参见:
-
fireTableCellUpdated
public void fireTableCellUpdated(int row, int column) 通知所有监听器,单元格在[row, column]处的值已更新。- 参数:
-
row- 已更新的单元格所在的行 -
column- 已更新的单元格所在的列 - 参见:
-
fireTableChanged
将给定的通知事件转发给所有已注册为此表格模型的TableModelListeners。- 参数:
-
e- 要转发的事件 - 参见:
-
getListeners
返回当前在此AbstractTableModel上注册为FooListener的所有对象的数组。使用addFooListener方法注册FooListener。您可以使用类字面量(例如
FooListener.class)指定listenerType参数。例如,您可以使用以下代码查询模型m的表格模型监听器:TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));
如果不存在此类监听器,则此方法返回一个空数组。- 类型参数:
-
T- 监听器类型 - 参数:
-
listenerType- 请求的监听器类型 - 返回:
-
返回在此组件上注册为
FooListener的所有对象的数组,如果没有添加此类监听器,则返回一个空数组 - 抛出:
-
ClassCastException- 如果listenerType未指定实现java.util.EventListener的类或接口 - 自:
- 1.3
- 参见:
-