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
。
Modifier and Type | Field and Description |
---|---|
protected EventListenerList |
listenerList
听众列表
|
Constructor and Description |
---|
AbstractTableModel() |
Modifier and Type | Method and Description |
---|---|
void |
addTableModelListener(TableModelListener l)
将一个监听器添加到每次发生数据模型更改时通知的列表。
|
int |
findColumn(String columnName)
返回一个给定其名称的列。
|
void |
fireTableCellUpdated(int row, int column)
通知该小区的价值的所有监听
[row, column] 已经更新。
|
void |
fireTableChanged(TableModelEvent e)
将给定的通知事件转发给所有
TableModelListeners 为此表模型的侦听器的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()
通知所有侦听器表的结构已更改。
|
类<?> |
getColumnClass(int columnIndex)
Object.class columnIndex如何返回
columnIndex 。
|
String |
getColumnName(int column)
使用电子表格约定返回列的默认名称:A,B,C,...
|
<T extends EventListener> |
getListeners(类<T> listenerType)
返回当前注册的所有对象的数组
FooListener 在这个S
AbstractTableModel 。
|
TableModelListener[] |
getTableModelListeners()
返回在此模型上注册的所有表模型侦听器的数组。
|
boolean |
isCellEditable(int rowIndex, int columnIndex)
返回false。
|
void |
removeTableModelListener(TableModelListener l)
从每次发生数据模型更改时通知的列表中移除侦听器。
|
void |
setValueAt(Object aValue, int rowIndex, int columnIndex)
这个空的实现被提供,所以如果用户的数据模型是不可编辑的,用户就不需要实现这个方法。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getColumnCount, getRowCount, getValueAt
protected EventListenerList listenerList
public String getColumnName(int column)
column
,则返回一个空字符串。
getColumnName
在界面
TableModel
column
- 正在查询的列
column
的字符串
public int findColumn(String columnName)
TableModel
接口中,并没有被JTable
。
columnName
- 包含要查找的列的名称的字符串
columnName
,如果未找到则为-1
public 类<?> getColumnClass(int columnIndex)
Object.class
columnIndex如何返回
columnIndex
。
getColumnClass
在界面
TableModel
columnIndex
- 正在查询的列
public boolean isCellEditable(int rowIndex, int columnIndex)
isCellEditable
在接口
TableModel
rowIndex
- 正在查询的行
columnIndex
- 正在查询的列
TableModel.setValueAt(java.lang.Object, int, int)
public void setValueAt(Object aValue, int rowIndex, int columnIndex)
setValueAt
在界面
TableModel
aValue
- 要分配给单元格的值
rowIndex
- 行单元格
columnIndex
- 单元格列
TableModel.getValueAt(int, int)
,
TableModel.isCellEditable(int, int)
public void addTableModelListener(TableModelListener l)
addTableModelListener
在界面
TableModel
l
- TableModelListener
public void removeTableModelListener(TableModelListener l)
removeTableModelListener
在接口
TableModel
l
- TableModelListener
public TableModelListener[] getTableModelListeners()
TableModelListener
s或一个空数组,如果没有表模型侦听器当前注册
addTableModelListener(javax.swing.event.TableModelListener)
,
removeTableModelListener(javax.swing.event.TableModelListener)
public void fireTableDataChanged()
JTable
应从头重新绘制表。
表的结构(按列的顺序)被假定为相同。
public void fireTableStructureChanged()
JTable
收到此事件并设置其autoCreateColumnsFromModel
标志,则会丢弃其所有的表列,并按其在模型中显示的顺序重新分配默认列。
这和setModel(TableModel)
上的JTable
。
TableModelEvent
, EventListenerList
public void fireTableRowsInserted(int firstRow, int lastRow)
[firstRow, lastRow]
(包括)的行。
firstRow
- 第一行
lastRow
- 最后一行
TableModelEvent
, EventListenerList
public void fireTableRowsUpdated(int firstRow, int lastRow)
[firstRow, lastRow]
,包容性,已被更新。
firstRow
- 第一行
lastRow
- 最后一行
TableModelEvent
, EventListenerList
public void fireTableRowsDeleted(int firstRow, int lastRow)
[firstRow, lastRow]
包括)中的行已被删除。
firstRow
- 第一行
lastRow
- 最后一行
TableModelEvent
, EventListenerList
public void fireTableCellUpdated(int row, int column)
[row, column]
已经更新。
row
- 已更新的单元格行
column
- 已更新的单元格列
TableModelEvent
, EventListenerList
public void fireTableChanged(TableModelEvent e)
TableModelListeners
为此表模型的侦听器的TableModelListeners。
e
- 要转发的事件
addTableModelListener(javax.swing.event.TableModelListener)
, TableModelEvent
, EventListenerList
public <T extends EventListener> T[] getListeners(类<T> listenerType)
FooListener
的所有对象的数组,就是这个AbstractTableModel
。
FooListener
使用addFooListener
方法注册。
您可以使用类文字指定listenerType
参数,例如FooListener.class
。 例如,您可以使用以下代码查询模型m
器m:
TableModelListener[] tmls = (TableModelListener[])(m.getListeners(TableModelListener.class));
如果没有这样的侦听器存在,这个方法返回一个空数组。
listenerType
- 所请求的听众的类型;
此参数应指定从java.util.EventListener
下降的java.util.EventListener
FooListener
的所有对象的数组,如果没有添加此类侦听器,则为空数组
ClassCastException
- 如果
listenerType
没有指定实现java.util.EventListener的类或
java.util.EventListener
getTableModelListeners()