java.lang.Object
javax.swing.table.AbstractTableModel
javax.swing.table.DefaultTableModel
- 所有已实现的接口:
-
Serializable,TableModel
这是一个使用
Vector存储单元格值对象的Vector实现TableModel。
警告: DefaultTableModel返回一个Object列类。当DefaultTableModel与TableRowSorter一起使用时,这将导致广泛使用toString,对于非String数据类型来说是昂贵的。如果您将DefaultTableModel与TableRowSorter一起使用,强烈建议您重写getColumnClass以返回适当的类型。
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4版本开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。请参阅XMLEncoder。
- 参见:
-
Field Summary
FieldsFields declared in class javax.swing.table.AbstractTableModel
listenerList -
Constructor Summary
ConstructorsConstructorDescription构造一个默认的DefaultTableModel,它是一个零列零行的表。DefaultTableModel(int rowCount, int columnCount) 构造一个具有rowCount和columnCount的null对象值的DefaultTableModel。DefaultTableModel(Object[][] data, Object[] columnNames) 构造一个DefaultTableModel,通过将data和columnNames传递给setDataVector方法来初始化表。DefaultTableModel(Object[] columnNames, int rowCount) 构造一个具有与columnNames中元素数量相同的列数和null对象值的rowCount的DefaultTableModel。DefaultTableModel(Vector<?> columnNames, int rowCount) 构造一个具有与columnNames中元素数量相同的列数和null对象值的rowCount的DefaultTableModel。DefaultTableModel(Vector<? extends Vector> data, Vector<?> columnNames) 构造一个DefaultTableModel,通过将data和columnNames传递给setDataVector方法来初始化表。 -
Method Summary
Modifier and TypeMethodDescriptionvoid向模型添加一列。void向模型添加一列。void向模型添加一列。void在模型末尾添加一行。void在模型末尾添加一行。convertToVector(Object[] anArray) 返回一个包含与数组相同对象的向量。convertToVector(Object[][] anArray) 返回一个包含与数组相同对象的向量的向量。int返回此数据表中的列数。getColumnName(int column) 返回列名。返回包含表数据值的Vector的Vector。int返回此数据表中的行数。getValueAt(int row, int column) 返回row和column处单元格的属性值。void在模型中的row处插入一行。void在模型中的row处插入一行。booleanisCellEditable(int row, int column) 无论参数值如何,都返回true。voidmoveRow(int start, int end, int to) 将一个或多个行从包含范围start到end移动到模型中的to位置。voidnewDataAvailable(TableModelEvent event) 等同于fireTableChanged。void确保新行具有正确数量的列。voidremoveRow(int row) 从模型中删除row处的行。voidrowsRemoved(TableModelEvent event) 等同于fireTableChanged。voidsetColumnCount(int columnCount) 设置模型中的列数。voidsetColumnIdentifiers(Object[] newIdentifiers) 替换模型中的列标识符。voidsetColumnIdentifiers(Vector<?> columnIdentifiers) 替换模型中的列标识符。voidsetDataVector(Object[][] dataVector, Object[] columnIdentifiers) 用数组dataVector中的值替换dataVector实例变量中的值。voidsetDataVector(Vector<? extends Vector> dataVector, Vector<?> columnIdentifiers) 用新的Vector行dataVector替换当前的dataVector实例变量。voidsetNumRows(int rowCount) 自Java 2平台v1.3起已过时。voidsetRowCount(int rowCount) 设置模型中的行数。voidsetValueAt(Object aValue, int row, int column) 为column和row处的单元格设置对象值。Methods declared in class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener
-
Field Details
-
dataVector
包含Object值的Vector的Vector。 -
columnIdentifiers
列标识符的Vector。
-
-
Constructor Details
-
DefaultTableModel
public DefaultTableModel()构造一个默认的DefaultTableModel,它是一个零列零行的表。 -
DefaultTableModel
public DefaultTableModel(int rowCount, int columnCount) 构造一个具有rowCount和columnCount的null对象值的DefaultTableModel。- 参数:
-
rowCount- 表中包含的行数 -
columnCount- 表中包含的列数 - 参见:
-
DefaultTableModel
构造一个具有与columnNames中元素数量相同的列数和null对象值的rowCount的DefaultTableModel。每列的名称将从columnNames向量中获取。- 参数:
-
columnNames- 包含新列名称的vector;如果为null,则模型没有列 -
rowCount- 表中包含的行数 - 参见:
-
DefaultTableModel
构造一个具有与columnNames中元素数量相同的列数和null对象值的rowCount的DefaultTableModel。每列的名称将从columnNames数组中获取。- 参数:
-
columnNames- 包含新列名称的array;如果为null,则模型没有列 -
rowCount- 表中包含的行数 - 参见:
-
DefaultTableModel
构造一个DefaultTableModel,通过将data和columnNames传递给setDataVector方法来初始化表。- 参数:
-
data- 表的数据,一个包含Object值的Vector的Vector -
columnNames- 包含新列名称的vector - 参见:
-
DefaultTableModel
构造一个DefaultTableModel,通过将data和columnNames传递给setDataVector方法来初始化表。数组Object[][]中的第一个索引是行索引,第二个是列索引。- 参数:
-
data- 表的数据 -
columnNames- 列的名称 - 参见:
-
-
Method Details
-
getDataVector
返回包含表数据值的Vector的Vector。外部向量中包含的向量是每一行的值。换句话说,要访问第1行第5列的单元格:((Vector)getDataVector().elementAt(1)).elementAt(5);- 返回:
- 包含表数据值的向量的向量
- 参见:
-
setDataVector
用新的dataVector的Vector替换当前的dataVector实例变量。每行在dataVector中表示为Object值的Vector。columnIdentifiers是新列的名称。在dataVector中,第一个名称映射到列0。将调整dataVector中的每行以匹配columnIdentifiers中的列数,如果太长则截断Vector,如果太短则添加null值。请注意,将
dataVector传入null值会导致未指定的行为,可能会引发异常。- 参数:
-
dataVector- 新数据向量 -
columnIdentifiers- 列的名称 - 参见:
-
setDataVector
用数组dataVector中的值替换dataVector实例变量中的值。Object[][]数组中的第一个索引是行索引,第二个是列索引。columnIdentifiers是新列的名称。- 参数:
-
dataVector- 新数据向量 -
columnIdentifiers- 列的名称 - 参见:
-
newDataAvailable
等同于fireTableChanged。- 参数:
-
event- 变更事件
-
newRowsAdded
确保新行具有正确数量的列。这通过在Vector中使用setSize方法来实现,该方法会截断太长的向量,并在太短时附加null。此方法还向所有监听器发送tableChanged通知消息。- 参数:
-
e- 此TableModelEvent描述了新添加的行的位置。如果为null,则假定所有行都是新添加的 - 参见:
-
rowsRemoved
等同于fireTableChanged。- 参数:
-
event- 变更事件
-
setNumRows
public void setNumRows(int rowCount) 自Java 2平台v1.3起已过时。请改用setRowCount。- 参数:
-
rowCount- 模型中的新行数
-
setRowCount
public void setRowCount(int rowCount) 设置模型中的行数。如果新大小大于当前大小,则在模型末尾添加新行。如果新大小小于当前大小,则丢弃索引rowCount及更大的所有行。- 参数:
-
rowCount- 模型中的行数 - 自1.3起:
- 1.3
- 参见:
-
addRow
向模型末尾添加一行。新行将包含null值,除非指定了rowData。将生成添加行的通知。- 参数:
-
rowData- 要添加的行的可选数据
-
addRow
向模型末尾添加一行。新行将包含null值,除非指定了rowData。将生成添加行的通知。- 参数:
-
rowData- 要添加的行的可选数据
-
insertRow
在模型中的row处插入一行。新行将包含null值,除非指定了rowData。将生成添加行的通知。- 参数:
-
row- 要插入的行的行索引 -
rowData- 要添加的行的可选数据 - 抛出:
-
ArrayIndexOutOfBoundsException- 如果行无效
-
insertRow
在模型中的row处插入一行。新行将包含null值,除非指定了rowData。将生成添加行的通知。- 参数:
-
row- 要插入的行的行索引 -
rowData- 要添加的行的可选数据 - 抛出:
-
ArrayIndexOutOfBoundsException- 如果行无效
-
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- 如果行无效
-
setColumnIdentifiers
替换模型中的列标识符。如果newIdentifier的数量大于当前列数,则在模型中的每行末尾添加新列。如果newIdentifier的数量少于当前列数,则丢弃每行末尾的所有额外列。- 参数:
-
columnIdentifiers- 列标识符的向量。如果为null,则将模型设置为零列 - 参见:
-
setColumnIdentifiers
替换模型中的列标识符。如果newIdentifier的数量大于当前列数,则在模型中的每行末尾添加新列。如果newIdentifier的数量少于当前列数,则丢弃每行末尾的所有额外列。- 参数:
-
newIdentifiers- 列标识符的数组。如果为null,则将模型设置为零列 - 参见:
-
setColumnCount
public void setColumnCount(int columnCount) 设置模型中的列数。如果新大小大于当前大小,则在模型末尾添加新列,其单元格值为null。如果新大小小于当前大小,则丢弃索引columnCount及更大的所有列。- 参数:
-
columnCount- 模型中的新列数 - 自1.3起:
- 1.3
- 参见:
-
addColumn
向模型中添加一列。新列将具有标识符columnName,可以为null。此方法将向所有监听器发送tableChanged通知消息。此方法是addColumn(Object, Vector)的封装,该方法使用null作为数据向量。- 参数:
-
columnName- 要添加的列的标识符
-
addColumn
向模型中添加一列。新列将具有标识符columnName,可以为null。columnData是列的可选数据向量。如果为null,则该列将填充为null值。否则,新数据将从第一个元素开始添加到模型,依次到第0行等。此方法将向所有监听器发送tableChanged通知消息。- 参数:
-
columnName- 要添加的列的标识符 -
columnData- 要添加的列的可选数据
-
addColumn
向模型中添加一列。新列将具有标识符columnName。columnData是列的可选数据数组。如果为null,则该列将填充为null值。否则,新数据将从第一个元素开始添加到模型,依次到第0行等。此方法将向所有监听器发送tableChanged通知消息。- 参数:
-
columnName- 新创建列的标识符 -
columnData- 要添加到列的新数据 - 参见:
-
getRowCount
public int getRowCount()返回此数据表中的行数。- 指定者:
-
getRowCount在接口TableModel中 - 返回:
- 模型中的行数
- 参见:
-
getColumnCount
public int getColumnCount()返回此数据表中的列数。- 指定者:
-
getColumnCount在接口TableModel中 - 返回:
- 模型中的列数
- 参见:
-
getColumnName
返回列名称。- 指定者:
-
getColumnName在接口TableModel中 - 覆盖:
-
getColumnName在类AbstractTableModel中 - 参数:
-
column- 正在查询的列 - 返回:
-
使用
columnIdentifiers中适当成员的字符串值的名称。如果columnIdentifiers没有此索引的条目,则返回超类提供的默认名称。
-
isCellEditable
public boolean isCellEditable(int row, int column) 无论参数值如何都返回true。- 指定者:
-
isCellEditable在接口TableModel中 - 覆盖:
-
isCellEditable在类AbstractTableModel中 - 参数:
-
row- 要查询其值的行 -
column- 要查询其值的列 - 返回:
- true
- 参见:
-
getValueAt
返回row和column处单元格的属性值。- 指定者:
-
getValueAt在接口TableModel中 - 参数:
-
row- 要查询其值的行 -
column- 要查询其值的列 - 返回:
- 指定单元格处的值对象
- 抛出:
-
ArrayIndexOutOfBoundsException- 如果给定无效的行或列
-
setValueAt
设置column和row处单元格的对象值。aValue是新值。此方法将生成tableChanged通知。- 指定者:
-
setValueAt在接口TableModel中 - 覆盖:
-
setValueAt在类AbstractTableModel中 - 参数:
-
aValue- 新值;可以为null -
row- 要更改其值的行 -
column- 要更改其值的列 - 抛出:
-
ArrayIndexOutOfBoundsException- 如果给定无效的行或列 - 参见:
-
convertToVector
返回包含与数组相同对象的向量。- 参数:
-
anArray- 要转换的数组 - 返回:
-
新向量;如果
anArray为null,则返回null
-
convertToVector
返回包含与数组相同对象的向量的向量。- 参数:
-
anArray- 要转换的双重数组 - 返回:
-
新的向量的向量;如果
anArray为null,则返回null
-