java.lang.Object
javax.swing.table.AbstractTableModel
javax.swing.table.DefaultTableModel
- 所有已实现的接口:
Serializable
,TableModel
这是
TableModel
的一个实现,它使用 Vectors
的 Vector
来存储单元格值对象。
Warning: DefaultTableModel
返回 Object
的列类。当 DefaultTableModel
与 TableRowSorter
一起使用时,这将导致大量使用 toString
,这对于非 String
数据类型来说是昂贵的。如果将 DefaultTableModel
与 TableRowSorter
一起使用,强烈建议您覆盖 getColumnClass
以返回适当的类型。
Warning: 此类的序列化对象将与未来的 Swing 版本不兼容。当前的序列化支持适用于运行相同版本 Swing 的应用程序之间的短期存储或 RMI。从 1.4 开始,对所有 JavaBeans 的长期存储的支持已添加到 java.beans
包中。请参阅 XMLEncoder
。
- 参见:
-
字段摘要
字段在类 javax.swing.table.AbstractTableModel 中声明的字段
listenerList
-
构造方法总结
构造方法构造方法描述构造一个默认的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
,其列数与null
对象值的columnNames
和rowCount
中的元素数一样多。DefaultTableModel
(Vector<?> columnNames, int rowCount) 构造一个DefaultTableModel
,其列数与null
对象值的columnNames
和rowCount
中的元素数一样多。DefaultTableModel
(Vector<? extends Vector> data, Vector<?> columnNames) 构造一个DefaultTableModel
并通过将data
和columnNames
传递给setDataVector
方法来初始化表。 -
方法总结
修饰符和类型方法描述void
向模型添加一列。void
向模型添加一列。void
向模型添加一列。void
在模型末尾添加一行。void
在模型末尾添加一行。convertToVector
(Object[] anArray) 返回包含与数组相同对象的向量。convertToVector
(Object[][] anArray) 返回包含与数组相同对象的向量向量。int
返回此数据表中的列数。getColumnName
(int column) 返回列名。返回包含表数据值的Vectors
的Vector
。int
返回此数据表中的行数。getValueAt
(int row, int column) 返回位于row
和column
的单元格的属性值。void
在模型中的row
处插入一行。void
在模型中的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
确保新行具有正确的列数。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<? extends 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
的单元格设置对象值。在类 javax.swing.table.AbstractTableModel 中声明的方法
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener
-
字段详细信息
-
dataVector
Object
的Vectors
的Vector
值。 -
columnIdentifiers
列标识符的Vector
。
-
-
构造方法详细信息
-
DefaultTableModel
public DefaultTableModel()构造一个默认的DefaultTableModel
,它是一个零列零行的表。 -
DefaultTableModel
public DefaultTableModel(int rowCount, int columnCount) 使用rowCount
和columnCount
的null
对象值构造一个DefaultTableModel
。- 参数:
rowCount
- 表包含的行数columnCount
- 表包含的列数- 参见:
-
DefaultTableModel
构造一个DefaultTableModel
,其列数与null
对象值的columnNames
和rowCount
中的元素数一样多。每列的名称将从columnNames
向量中获取。- 参数:
columnNames
-vector
包含新列的名称;如果这是null
那么模型没有列rowCount
- 表包含的行数- 参见:
-
DefaultTableModel
构造一个DefaultTableModel
,其列数与null
对象值的columnNames
和rowCount
中的元素数一样多。每列的名称将从columnNames
数组中获取。- 参数:
columnNames
-array
包含新列的名称;如果这是null
那么模型没有列rowCount
- 表包含的行数- 参见:
-
DefaultTableModel
构造一个DefaultTableModel
并通过将data
和columnNames
传递给setDataVector
方法来初始化表。- 参数:
data
- 表的数据,Vector
ofVector
s ofObject
valuescolumnNames
-vector
包含新列的名称- 参见:
-
DefaultTableModel
构造一个DefaultTableModel
并通过将data
和columnNames
传递给setDataVector
方法来初始化表。Object[][]
数组中的第一个索引是行索引,第二个是列索引。- 参数:
data
——表的数据columnNames
- 列的名称- 参见:
-
-
方法详情
-
getDataVector
返回包含表数据值的Vectors
的Vector
。包含在外部向量中的向量每个都是一行值。换句话说,要到达第 1 行第 5 列的单元格:((Vector)getDataVector().elementAt(1)).elementAt(5);
- 返回:
- 包含表数据值的向量的向量
- 参见:
-
setDataVector
用新的Vector
行dataVector
替换当前的dataVector
实例变量。每行在dataVector
中表示为Vector
的Object
值。columnIdentifiers
是新列的名称。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
s。此方法还向所有监听器发出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
- 参见:
-
addRow
在模型末尾添加一行。除非指定rowData
,否则新行将包含null
值。将生成正在添加的行的通知。- 参数:
rowData
- 被添加行的可选数据
-
addRow
在模型末尾添加一行。除非指定rowData
,否则新行将包含null
值。将生成正在添加的行的通知。- 参数:
rowData
- 被添加行的可选数据
-
insertRow
在模型中的row
处插入一行。除非指定rowData
,否则新行将包含null
值。将生成正在添加的行的通知。- 参数:
row
- 要插入的行的行索引rowData
- 被添加行的可选数据- 抛出:
ArrayIndexOutOfBoundsException
- 如果该行无效
-
insertRow
在模型中的row
处插入一行。除非指定rowData
,否则新行将包含null
值。将生成正在添加的行的通知。- 参数:
row
- 要插入的行的行索引rowData
- 被添加行的可选数据- 抛出:
ArrayIndexOutOfBoundsException
- 如果该行无效
-
moveRow
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
- 如果任何元素将被移出表的范围
-
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
- 参见:
-
addColumn
向模型添加一列。新列将具有标识符columnName
,它可能为空。此方法将向所有监听器发送tableChanged
通知消息。此方法是对addColumn(Object, Vector)
的覆盖,它使用null
作为数据向量。- 参数:
columnName
- 正在添加的列的标识符
-
addColumn
向模型添加一列。新列将具有标识符columnName
,它可能为空。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
- 新值;这可以为空row
- 要更改其值的行column
- 要更改其值的列- 抛出:
ArrayIndexOutOfBoundsException
- 如果给出了无效的行或列- 参见:
-
convertToVector
返回包含与数组相同对象的向量。- 参数:
anArray
- 要转换的数组- 返回:
-
新向量;如果
anArray
是null
,返回null
-
convertToVector
返回包含与数组相同对象的向量向量。- 参数:
anArray
- 要转换的双精度数组- 返回:
-
向量的新向量;如果
anArray
是null
,返回null
-