public abstract class AbstractTableModel extends Object implements TableModel, Serializable
TableModel
接口方法的默认实现。它需要照顾听众的管理和生成
TableModelEvents
调度给听众提供一些便利。创建一个具体的
TableModel
作为
AbstractTableModel
你只需要提供以下三种方法实现的一个子类:
public int getrowcount();public int getcolumncount();公共对象getvalueat(行,int列);
警告:序列化该类的对象与以后的Swing版本不兼容。当前的序列化支持适用于短期贮藏或RMI运行相同Swing版本的应用程序之间。为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 通知事件,注册自己为这台模型的听众。
|
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 。
|
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
。
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
标志被设置,它摒弃了和再分配的默认列模型中出现的任何表中的列顺序。这是对
JTable
调用
setModel(TableModel)
相同。
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
通知事件,注册自己为这台模型的听众。
e
-要转发的事件
addTableModelListener(javax.swing.event.TableModelListener)
,
TableModelEvent
,
EventListenerList
public <T extends EventListener> T[] getListeners(类<T> listenerType)
FooListener
s在这
AbstractTableModel
数组。
FooListener
s使用
addFooListener
方法注册。
您可以指定一个类的listenerType
字面的说法,如FooListener.class
。例如,您可以查询的表模型的听众与下面的代码模型m
:
tablemodellistener [ ]空间=(tablemodellistener [ ])(m.getlisteners(tablemodellistener。类));如果没有这样的听众的存在,此方法将返回空数组。
listenerType
-听众的类型要求;这个参数应该指定一个接口,从
java.util.EventListener
FooListener
s数组,或一个空数组如果没有这样的听众已添加
ClassCastException
-如果
listenerType
不指定一个类或接口实现
java.util.EventListener
getTableModelListeners()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.