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
Fields declared in class javax.swing.table.AbstractTableModel
listenerList
-
Constructor Summary
ConstructorDescription构造一个默认的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
处插入一行。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
处的单元格设置对象值。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
-