public class DefaultTableModel extends AbstractTableModel implements Serializable
TableModel ,它使用Vector的Vectors来存储单元格值对象。
警告: DefaultTableModel返回一个列类为Object 。 当DefaultTableModel与使用TableRowSorter这将导致广泛使用的toString ,这对于非String数据类型是昂贵的。 如果您使用DefaultTableModel与TableRowSorter ,强烈建议您覆盖getColumnClass返回相应的类型。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已经添加到java.beans包中。 请参阅XMLEncoder 。
TableModel , getDataVector()
| Modifier and Type | Field and Description |
|---|---|
protected Vector |
columnIdentifiers
Vector列标识符。
|
protected Vector |
dataVector
Vector的
Vectors的
Object值。
|
listenerList| Constructor and Description |
|---|
DefaultTableModel()
构造一个默认的
DefaultTableModel ,它是零列和零行的表。
|
DefaultTableModel(int rowCount, int columnCount)
构造一个
DefaultTableModel与
rowCount和
columnCount的
null对象值。
|
DefaultTableModel(Object[][] data, Object[] columnNames)
构建
DefaultTableModel ,并通过
data和
columnNames通过
setDataVector方法
columnNames表。
|
DefaultTableModel(Object[] columnNames, int rowCount)
构造一个
DefaultTableModel与尽可能多的列有在元件
columnNames和
rowCount的
null对象值。
|
DefaultTableModel(Vector columnNames, int rowCount)
构造一个
DefaultTableModel与
columnNames和
rowCount的
null对象值中的元素一样多的列。
|
DefaultTableModel(Vector data, Vector columnNames)
构建一个
DefaultTableModel ,并通过将
data和
columnNames传递给
setDataVector方法来
setDataVector表。
|
| Modifier and Type | Method and Description |
|---|---|
void |
addColumn(Object columnName)
向模型添加一列。
|
void |
addColumn(Object columnName, Object[] columnData)
向模型添加一列。
|
void |
addColumn(Object columnName, Vector columnData)
向模型添加一列。
|
void |
addRow(Object[] rowData)
在模型的末尾添加一行。
|
void |
addRow(Vector rowData)
在模型的末尾添加一行。
|
protected static Vector |
convertToVector(Object[] anArray)
返回一个包含与数组相同的对象的向量。
|
protected static Vector |
convertToVector(Object[][] anArray)
返回包含与数组相同对象的向量向量。
|
int |
getColumnCount()
返回此数据表中的列数。
|
String |
getColumnName(int column)
返回列名。
|
Vector |
getDataVector()
返回包含表的数据值的
Vector的
Vectors 。
|
int |
getRowCount()
返回此数据表中的行数。
|
Object |
getValueAt(int row, int column)
row和
column返回单元格的属性值。
|
void |
insertRow(int row, Object[] rowData)
在模型中插入一行
row 。
|
void |
insertRow(int row, Vector rowData)
在模型中插入一行
row 。
|
boolean |
isCellEditable(int row, int column)
无论参数值如何,都会返回true。
|
void |
moveRow(int start, int end, int to)
将一行或多行从包含范围
start到
end到模型中的
to位置。
|
void |
newDataAvailable(TableModelEvent event)
相当于
fireTableChanged 。
|
void |
newRowsAdded(TableModelEvent e)
确保新行的列数正确。
|
void |
removeRow(int row)
从模型中删除
row的行。
|
void |
rowsRemoved(TableModelEvent event)
相当于
fireTableChanged 。
|
void |
setColumnCount(int columnCount)
设置模型中的列数。
|
void |
setColumnIdentifiers(Object[] newIdentifiers)
替换模型中的列标识符。
|
void |
setColumnIdentifiers(Vector columnIdentifiers)
替换模型中的列标识符。
|
void |
setDataVector(Object[][] dataVector, Object[] columnIdentifiers)
使用数组
dataVector的值替换
dataVector实例变量中的值。
|
void |
setDataVector(Vector dataVector, Vector columnIdentifiers)
用新的
Vector行
dataVector替换当前的
dataVector实例变量。
|
void |
setNumRows(int rowCount)
作为Java 2平台v1.3的过时。
|
void |
setRowCount(int rowCount)
设置模型中的行数。
|
void |
setValueAt(Object aValue, int row, int column)
设置单元格的对象值为
column和
row 。
|
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListenerprotected Vector dataVector
Vector的
Vectors的
Object值。
protected Vector columnIdentifiers
Vector列标识符。
public DefaultTableModel()
DefaultTableModel ,它是零列和零行的表。
public DefaultTableModel(int rowCount,
int columnCount)
DefaultTableModel与
rowCount和
columnCount的
null对象值。
rowCount - 表所包含的行数
columnCount - 表所包含的列数
setValueAt(java.lang.Object, int, int)
public DefaultTableModel(Vector columnNames, int rowCount)
DefaultTableModel与columnNames和rowCount的null对象值中的元素一样多的列。
每列的名称将从columnNames向量中columnNames 。
columnNames - vector包含新列的名称;
如果这是null那么模型没有列
rowCount - 表所包含的行数
setDataVector(java.util.Vector, java.util.Vector) ,
setValueAt(java.lang.Object, int, int)
public DefaultTableModel(Object[] columnNames, int rowCount)
DefaultTableModel与columnNames和rowCount的null对象值中的元素一样多的列。
每列的名称将从columnNames数组中columnNames 。
columnNames - array包含新列的名称;
如果这是null那么模型没有列
rowCount - 表所包含的行数
setDataVector(java.util.Vector, java.util.Vector) ,
setValueAt(java.lang.Object, int, int)
public DefaultTableModel(Vector data, Vector columnNames)
DefaultTableModel并通过将
data和
columnNames传递给
setDataVector方法来
setDataVector表。
data - 表中的数据,
Vector的
Vector的
Object数值
columnNames -
vector包含新列的名称
getDataVector() ,
setDataVector(java.util.Vector, java.util.Vector)
public DefaultTableModel(Object[][] data, Object[] columnNames)
DefaultTableModel ,并通过data和columnNames通过setDataVector方法columnNames表。
Object[][]数组中的第一个索引是行索引,第二个是列索引。
data - 表的数据
columnNames - 列的名称
getDataVector() ,
setDataVector(java.util.Vector, java.util.Vector)
public Vector getDataVector()
Vector的Vectors 。
外向量中包含的向量各自是单行值。
换句话说,要进入第1列第5列的单元格:
((Vector)getDataVector().elementAt(1)).elementAt(5);
public void setDataVector(Vector dataVector, Vector columnIdentifiers)
dataVector实例变量与新的Vector行dataVector 。
每行在dataVector中dataVector为Vector的Object值。
columnIdentifiers是新列的名称。
columnIdentifiers中的第一个名字映射到dataVector第0列。
中的每行dataVector被调节以匹配的列数columnIdentifiers要么通过截断Vector ,如果它太长,或添加null值,如果它太短。
请注意,传递null值为dataVector会导致未指定的行为,这可能是一个例外。
dataVector - 新的数据向量
columnIdentifiers - 列的名称
getDataVector()
public void setDataVector(Object[][] dataVector, Object[] columnIdentifiers)
dataVector的值替换dataVector实例变量中的值。
Object[][]数组中的第一个索引是行索引,第二个是列索引。
columnIdentifiers是新列的名称。
dataVector - 新的数据向量
columnIdentifiers - 列的名称
setDataVector(Vector, Vector)
public void newDataAvailable(TableModelEvent event)
fireTableChanged 。
event - 变更事件
public void newRowsAdded(TableModelEvent e)
setSize方法来Vector ,该方法Vector太长的向量,如果它们太短,则附加null 。
此方法还向所有tableChanged者发送一条tableChanged通知消息。
e - 此TableModelEvent描述了行的添加位置。
如果null它假定所有行都是新添加的
getDataVector()
public void rowsRemoved(TableModelEvent event)
fireTableChanged 。
event - 变更事件
public void setNumRows(int rowCount)
setRowCount 。
public void setRowCount(int rowCount)
rowCount和更大的所有行将被丢弃。
setColumnCount(int)
public void addRow(Vector rowData)
null值,除非rowData rowData。
将生成要添加的行的通知。
rowData - 要添加的行的可选数据
public void addRow(Object[] rowData)
rowData ,否则新行将包含null值。
将生成要添加的行的通知。
rowData - 要添加的行的可选数据
public void insertRow(int row,
Vector rowData)
row 。
新行将包含null值,除非rowData rowData。
将生成要添加的行的通知。
row - 要插入的行的行索引
rowData - 要添加的行的可选数据
ArrayIndexOutOfBoundsException - 如果行无效
public void insertRow(int row,
Object[] rowData)
row 。
新行将包含null值,除非rowData rowData。
将生成要添加的行的通知。
row - 要插入的行的行索引
rowData - 要添加的行的可选数据
ArrayIndexOutOfBoundsException - 如果行无效
public void moveRow(int start,
int end,
int to)
start到end到模型中的to位置。
移动后,索引为start行将为索引to 。
此方法将向所有收听者发送一条tableChanged通知消息。
Examples of moves:
1. moveRow(1,3,5);
a|B|C|D|e|f|g|h|i|j|k - before
a|e|f|g|h|B|C|D|i|j|k - after
2. moveRow(6,7,1);
a|b|c|d|e|f|G|H|i|j|k - before
a|G|H|b|c|d|e|f|i|j|k - after
start - 要移动的起始行索引
end - 要移动的结束行索引
to - 要移动的行的目的地
ArrayIndexOutOfBoundsException - 如果任何元素将被移出表的范围
public void removeRow(int row)
row的行。
被删除的行的通知将被发送给所有的监听器。
row - 要删除的行的行索引
ArrayIndexOutOfBoundsException - 如果行无效
public void setColumnIdentifiers(Vector columnIdentifiers)
newIdentifier s的数量大于当前的列数,则新列将添加到模型中每行的末尾。
如果newIdentifier s的数目小于当前的列数,那么行的末尾的所有额外的列将被丢弃。
columnIdentifiers - 列标识符的向量。
如果null ,将模型设置为零列
setNumRows(int)
public void setColumnIdentifiers(Object[] newIdentifiers)
newIdentifier s的数量大于当前的列数,则新列将添加到模型中每行的末尾。
如果newIdentifier s的数目少于当前的列数,则一行末尾的所有额外列将被丢弃。
newIdentifiers - 列标识符数组。
如果null ,将模型设置为零列
setNumRows(int)
public void setColumnCount(int columnCount)
null单元格值。
如果新大小小于当前大小,那么将丢弃索引为columnCount或更大的所有列。
columnCount - 模型中的新列数
setColumnCount(int)
public void addColumn(Object columnName)
columnName ,可能为null。
此方法将向所有收听者发送一条tableChanged通知消息。
该方法是addColumn(Object, Vector)的封面,采用null作为数据向量。
columnName - 要添加的列的标识符
public void addColumn(Object columnName, Vector columnData)
columnName ,可能为null。
columnData是该列的可选数据向量。
如果是null则列填充null值。
否则,新数据将被添加到模型,从第一个元素到第0行等。此方法将向所有tableChanged器发送一个tableChanged通知消息。
columnName - 要添加的列的标识符
columnData - 要添加的列的可选数据
public void addColumn(Object columnName, Object[] columnData)
columnName 。
columnData是列的可选数据数组。
如果是null则列填充null值。
否则,新的数据将被添加到从第0行tableChanged的第一个元素开始的模型中。此方法将向所有收听者发送一个tableChanged通知消息。
public int getRowCount()
getRowCount在界面
TableModel
TableModel.getColumnCount()
public int getColumnCount()
getColumnCount在界面
TableModel
TableModel.getRowCount()
public String getColumnName(int column)
getColumnName在界面
TableModel
getColumnName在
AbstractTableModel
column - 正在查询的列
columnIdentifiers 。
如果columnIdentifiers没有此索引的条目,则返回超类提供的默认名称。
public boolean isCellEditable(int row,
int column)
isCellEditable在接口
TableModel
isCellEditable在
AbstractTableModel
row - 要查询其值的行
column - 要查询其值的列
setValueAt(java.lang.Object, int, int)
public Object getValueAt(int row, int column)
row和
column返回单元格的属性值。
getValueAt在接口
TableModel
row - 要查询其值的行
column - 要查询其值的列
ArrayIndexOutOfBoundsException - 如果给定无效的行或列
public void setValueAt(Object aValue, int row, int column)
column和row 。
aValue是新的值。
此方法将生成一个tableChanged通知。
setValueAt在接口
TableModel
setValueAt在
AbstractTableModel
aValue - 新价值;
这可以是null
row - 要更改其值的行
column - 其值要更改的列
ArrayIndexOutOfBoundsException - 如果给定无效的行或列
TableModel.getValueAt(int, int) ,
TableModel.isCellEditable(int, int)
protected static Vector convertToVector(Object[] anArray)
anArray - 要转换的数组
anArray是null ,返回null
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.