DefaultTableModel API介绍
javax.swing.table
类 DefaultTableModel
java.lang.Object
javax.swing.table.AbstractTableModel
javax.swing.table.DefaultTableModel
- 所有已实现的接口:
- Serializable, TableModel
public class DefaultTableModelextends AbstractTableModelimplements Serializable
这是 TableModel 的一个实现,它使用一个 Vector 来存储单元格的值对象,该 Vector 由多个 Vector 组成。
警告: DefaultTableModel 返回 Object 的一个列类。DefaultTableModel 与 TableRowSorter 一起使用时将导致大量使用 toString,这对于非 String 数据类型代价昂贵。如果与 TableRowSorter 一起使用 DefaultTableModel,建议最好重写 getColumnClass 以返回适当的类型。
警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行远程方法调用(Remote Method Invocation,RMI)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder。
- 另请参见:
- TableModel, getDataVector()
| 字段摘要 | |
|---|---|
protected Vector |
columnIdentifiers Vector,由多个列标识符组成。 |
protected Vector |
dataVector
Vector,由包含多个 Object 值的 Vector 组成。 |
| 从类 javax.swing.table.AbstractTableModel 继承的字段 |
|---|
listenerList |
| 构造方法摘要 | |
|---|---|
DefaultTableModel()
构造默认的 DefaultTableModel,它是一个零列零行的表。 |
|
DefaultTableModel(int rowCount,
int columnCount)
构造一个具有 rowCount 行和 columnCount 列的 null 对象值的 DefaultTableModel。 |
|
DefaultTableModel(Object[][] data,
Object[] columnNames)
构造一个 DefaultTableModel,并通过将 data 和 columnNames 传递到 setDataVector 方法来初始化该表。 |
|
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 方法来初始化该表。 |
|
| 方法摘要 | |
|---|---|
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)
返回一个 vector,该 vector 由包含与该数组相同的对象的多个 vector 组成。 |
int |
getColumnCount()
返回此数据表中的列数。 |
String |
getColumnName(int column)
返回列名称。 |
Vector |
getDataVector()
返回由多个包含表数据值的 Vector 组成的 Vector。 |
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 platform v1.3 开始已过时。 |
void |
setRowCount(int rowCount)
设置模型中的行数。 |
void |
setValueAt(Object aValue,
int row,
int column)
设置 column 和 row 处单元格的对象值。 |
| 从类 javax.swing.table.AbstractTableModel 继承的方法 |
|---|
addTableModelListener, findColumn, fireTableCellUpdated,
fireTableChanged, fireTableDataChanged, fireTableRowsDeleted,
fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged,
getColumnClass, getListeners, getTableModelListeners,
removeTableModelListener |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 字段详细信息 |
|---|
dataVector
protected Vector dataVector
Vector,由包含多个Object值的Vector组成。
columnIdentifiers
protected Vector columnIdentifiers
Vector,由多个列标识符组成。
| 构造方法详细信息 |
|---|
DefaultTableModel
public DefaultTableModel()
- 构造默认的
DefaultTableModel,它是一个零列零行的表。
DefaultTableModel
public DefaultTableModel(int rowCount,
int columnCount)
- 构造一个具有
rowCount行和columnCount列的null对象值的DefaultTableModel。- 参数:
rowCount- 表的行数columnCount- 表的列数- 另请参见:
- setValueAt(java.lang.Object, int, int)
DefaultTableModel
public DefaultTableModel(Vector columnNames,
int rowCount)
- 构造一个
DefaultTableModel,它的列数与columnNames中元素的数量相同,并具有rowCount行null对象值。每列的名称都取自columnNames向量。- 参数:
columnNames- 包含新的列名称的vector;如果该参数为null,则该模型没有列rowCount- 表的行数- 另请参见:
- setDataVector(java.util.Vector, java.util.Vector), setValueAt(java.lang.Object, int, int)
DefaultTableModel
public DefaultTableModel(Object[] columnNames,
int rowCount)
- 构造一个
DefaultTableModel,它的列数与columnNames中元素的数量相同,并具有rowCount行null对象值。每列的名称都取自columnNames数组。- 参数:
columnNames- 包含新的列名称的array;如果该参数为null,则该模型没有列rowCount- 表的行数- 另请参见:
- setDataVector(java.util.Vector, java.util.Vector), setValueAt(java.lang.Object, int, int)
DefaultTableModel
public DefaultTableModel(Vector data,
Vector columnNames)
- 构造一个
DefaultTableModel,并通过将data和columnNames传递到setDataVector方法来初始化该表。- 参数:
data- 表的数据,它是一个Vector,由包含多个Object值的Vector组成columnNames- 包含新的列名称的vector- 另请参见:
- getDataVector(), setDataVector(java.util.Vector, java.util.Vector)
DefaultTableModel
public DefaultTableModel(Object[][] data,
Object[] columnNames)
- 构造一个
DefaultTableModel,并通过将data和columnNames传递到setDataVector方法来初始化该表。Object[][]数组中的第一个索引是行索引,第二个索引是列索引。- 参数:
data- 表的数据columnNames- 列的名称- 另请参见:
- getDataVector(), setDataVector(java.util.Vector, java.util.Vector)
| 方法详细信息 |
|---|
getDataVector
public Vector getDataVector()
- 返回由多个包含表数据值的
Vector组成的Vector。外层 vector 中包含的每个 vector 都是一行的值。换句话说,要获得第 1 行、第 5 列的单元格,可以使用以下代码:((Vector)getDataVector().elementAt(1)).elementAt(5); - 返回:
- vector,由包含表数据值的多个 vector 组成
- 另请参见:
- newDataAvailable(javax.swing.event.TableModelEvent), newRowsAdded(javax.swing.event.TableModelEvent), setDataVector(java.util.Vector, java.util.Vector)
setDataVector
public void setDataVector(Vector dataVector,
Vector columnIdentifiers)
- 用新的行
Vector(dataVector)替换当前的dataVector实例变量。每一行都用dataVector表示,dataVector是由多个Object值组成的Vector。columnIdentifiers是新列的名称。columnIdentifiers中的第一个名称映射为dataVector中第 0 列。将dataVector中每一行调整为与columnIdentifiers中的列数匹配,这通过在Vector太长时截短它、在Vector太短时添加null值来实现。注意,为
dataVector传入null值会导致未指定的行为,可能抛出异常。 - 参数:
dataVector- 新的数据向量columnIdentifiers- 列的名称- 另请参见:
- getDataVector()
setDataVector
public void setDataVector(Object[][] dataVector,
Object[] columnIdentifiers)
- 用数组
dataVector中的值替换dataVector实例变量中的值。Object[][]数组中第一个索引是行索引,第二个索引是列索引。columnIdentifiers是新列名称。 - 参数:
dataVector- 新的数据向量columnIdentifiers- 列的名称- 另请参见:
- setDataVector(Vector, Vector)
newDataAvailable
public void newDataAvailable(TableModelEvent event)
- 等效于
fireTableChanged。 - 参数:
event- 更改事件
newRowsAdded
public void newRowsAdded(TableModelEvent e)
- 确保新行的列数正确。这是通过使用
Vector中的setSize方法来完成的,该方法在 Vector 太长时将其截短,在 Vector 太短时追加null。此方法还向所有侦听器发送tableChanged通知消息。 - 参数:
e- 此TableModelEvent描述添加行的位置。如果为null,则此方法假定所有行都是新添加的- 另请参见:
- getDataVector()
rowsRemoved
public void rowsRemoved(TableModelEvent event)
- 等效于
fireTableChanged。 - 参数:
event- 更改事件
setNumRows
public void setNumRows(int rowCount)
- 从 Java 2 platform v1.3 开始已过时。请使用
setRowCount替代。
setRowCount
public void setRowCount(int rowCount)
- 设置模型中的行数。如果新的大小大于当前大小,则将新行添加到该模型的结尾,如果新的大小小于当前大小,则丢弃索引
rowCount处及其之后的所有行。 - 从以下版本开始:
- 1.3
- 另请参见:
- setColumnCount(int)
addRow
public void addRow(Vector rowData)
- 添加一行到模型的结尾。如果未指定
rowData,则新行将包含null值。将生成添加行的通知。 - 参数:
rowData- 要添加的行数据(可选)
addRow
public void addRow(Object[] rowData)
- 添加一行到模型的结尾。如果未指定
rowData,则新行将包含null值。将生成添加行的通知。 - 参数:
rowData- 要添加的行数据(可选)
insertRow
public void insertRow(int row,
Vector rowData)
- 在模型中的
row位置插入一行。如果未指定rowData,则新行将包含null值。将生成添加行的通知。 - 参数:
row- 要插入的行的行索引rowData- 要添加的行数据(可选)- 抛出:
ArrayIndexOutOfBoundsException- 如果 row 无效
insertRow
public void insertRow(int row,
Object[] rowData)
- 在模型中的
row位置插入一行。如果未指定rowData,则新行将包含null值。将生成添加行的通知。 - 参数:
row- 要插入的行的行索引rowData- 要添加的行数据(可选)- 抛出:
ArrayIndexOutOfBoundsException- 如果 row 无效
moveRow
public void moveRow(int start,
int end,
int to)
- 将
start(包含)到end(包含)范围中的一行或多行移到模型中的to位置。进行移动操作后,原先索引为start的行的索引将变为to。此方法将向所有侦听器发送tableChanged通知消息。以下是移动操作的示例:
1. moveRow(1,3,5); a|B|C|D|e|f|g|h|i|j|k - 移动前 a|e|f|g|h|B|C|D|i|j|k - 移动后
2. moveRow(6,7,1); a|b|c|d|e|f|G|H|i|j|k - 移动前 a|G|H|b|c|d|e|f|i|j|k - 移动后
- 参数:
start- 要移动的起始行索引end- 要移动的结束行索引to- 行要移动到的目标位置- 抛出:
ArrayIndexOutOfBoundsException- 如果任意元素将被移出该表的范围
removeRow
public void removeRow(int row)
- 移除模型中
row位置的行。向所有侦听器发送移除行的通知。 - 参数:
row- 要移除的行的行索引- 抛出:
ArrayIndexOutOfBoundsException- 如果 row 无效
setColumnIdentifiers
public void setColumnIdentifiers(Vector columnIdentifiers)
- 替换模型中的列标识符。如果
newIdentifier数大于当前的列数,则将新列添加到模型中每一行的结尾。如果newIdentifier数小于当前的列数,则丢弃每行结尾处所有多余的列。 - 参数:
columnIdentifiers- 列标识符的向量。如果为null,则将该模型设置为具有零列- 另请参见:
- setNumRows(int)
setColumnIdentifiers
public void setColumnIdentifiers(Object[] newIdentifiers)
- 替换模型中的列标识符。如果
newIdentifier数大于当前的列数,则将新列添加到模型中每一行的结尾。如果newIdentifier数小于当前的列数,则丢弃每行结尾处所有多余的列。 - 参数:
newIdentifiers- 列标识符的数组。如果为null,则将该模型设置为具有零列- 另请参见:
- setNumRows(int)
setColumnCount
public void setColumnCount(int columnCount)
- 设置模型中的列数。如果新大小大于当前大小,则将新列添加到模型结尾并使其具有
null单元格值。如果新大小小于当前大小,则将丢弃索引columnCount处及其之后的所有列。 - 参数:
columnCount- 模型中新的列数- 从以下版本开始:
- 1.3
- 另请参见:
- setColumnCount(int)
addColumn
public void addColumn(Object columnName)
- 将一列添加到模型中。新列的标识符将为
columnName,它可以为 null。此方法将向所有侦听器发送tableChanged通知消息。此方法覆盖了addColumn(Object, Vector),它使用null作为数据向量。 - 参数:
columnName- 要添加的列的标识符
addColumn
public void addColumn(Object columnName,
Vector columnData)
- 将一列添加到模型中。新列的标识符将为
columnName,它可以为 null。columnData是列的可选数据向量。如果它为null,则使用null值填充该列。否则,将新数据添加到模型中,第一个元素将添加到第 0 行,依此类推。此方法将向所有侦听器发送tableChanged通知消息。 - 参数:
columnName- 要添加的列的标识符columnData- 要添加的列的数据(可选)
addColumn
public void addColumn(Object columnName,
Object[] columnData)
- 将一列添加到模型中。新列的标识符将为
columnName。columnData是该列的可选数据数组。如果它为null,则使用null值填充该列。否则,将新数据添加到模型中,第一个元素添加到第 0 行,依此类推。此方法将向所有侦听器发送tableChanged通知消息。 - 另请参见:
- addColumn(Object, Vector)
getRowCount
public int getRowCount()
- 返回此数据表中的行数。
- 指定者:
- 接口
TableModel中的getRowCount
- 返回:
- 该模型中的行数
- 另请参见:
- TableModel.getColumnCount()
getColumnCount
public int getColumnCount()
- 返回此数据表中的列数。
- 指定者:
- 接口
TableModel中的getColumnCount
- 返回:
- 该模型中的列数
- 另请参见:
- TableModel.getRowCount()
getColumnName
public String getColumnName(int column)
- 返回列名称。
- 指定者:
- 接口
TableModel中的getColumnName - 覆盖:
- 类
AbstractTableModel中的getColumnName
- 参数:
column- 被查询的列- 返回:
- 此列的名称,它使用
columnIdentifiers中适当成员的字符串值。如果columnIdentifiers不具有此索引的条目,则返回由超类提供的默认名称
isCellEditable
public boolean isCellEditable(int row,
int column)
- 无论参数值是多少都返回 true。
- 指定者:
- 接口
TableModel中的isCellEditable - 覆盖:
- 类
AbstractTableModel中的isCellEditable
- 参数:
row- 要查询其值的行column- 要查询其值的列- 返回:
- true
- 另请参见:
- setValueAt(java.lang.Object, int, int)
getValueAt
public Object getValueAt(int row,
int column)
- 返回
row和column处单元格的属性值。 - 指定者:
- 接口
TableModel中的getValueAt
- 参数:
row- 要查询其值的行column- 要查询其值的列- 返回:
- 指定单元格处的值 Object
- 抛出:
ArrayIndexOutOfBoundsException- 如果给定了无效的 row 或 column
setValueAt
public void setValueAt(Object aValue,
int row,
int column)
- 设置
column和row处单元格的对象值。aValue是新值。此方法将生成一个tableChanged通知。 - 指定者:
- 接口
TableModel中的setValueAt - 覆盖:
- 类
AbstractTableModel中的setValueAt
- 参数:
aValue- 新值,可以为 nullrow- 要更改其值的行column- 要更改其值的列- 抛出:
ArrayIndexOutOfBoundsException- 如果给定了无效的 row 或 column- 另请参见:
- TableModel.getValueAt(int, int), TableModel.isCellEditable(int, int)
convertToVector
protected static Vector convertToVector(Object[] anArray)
- 返回一个包含与该数组相同的对象的向量。
- 参数:
anArray- 要转换的数组- 返回:
- 新的向量;如果
anArray为null,则返回null
convertToVector
protected static Vector convertToVector(Object[][] anArray)
- 返回一个 vector,该 vector 由包含与该数组相同的对象的多个 vector 组成。
- 参数:
anArray- 要转换的二维数组- 返回:
- 由多个 vector 组成的新 vector;如果
anArray为null,则返回null
原文:http://www.apihome.cn/api/java/DefaultTableModel.html

浙公网安备 33010602011771号