- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- javax.swing.table.DefaultTableModel
-
- 实现的所有接口
-
Serializable
,TableModel
public class DefaultTableModelextends AbstractTableModelimplements Serializable
这是TableModel
的实现,其使用Vector
的Vectors
来存储单元格值对象。警告:
DefaultTableModel
返回列类Object
。 当DefaultTableModel
与TableRowSorter
DefaultTableModel
使用时,这将导致广泛使用toString
,这对于非String
数据类型来说是昂贵的。 如果您使用DefaultTableModel
和TableRowSorter
,强烈建议您覆盖getColumnClass
以返回相应的类型。警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参见XMLEncoder
。- 另请参见:
-
TableModel
,getDataVector()
, Serialized Form
-
-
字段汇总
字段 变量和类型 字段 描述 protected Vector
columnIdentifiers
列标识符的Vector
。protected Vector<Vector>
dataVector
Vector
的Vectors
的Object
值。-
声明的属性在类 javax.swing.table.AbstractTableModel
listenerList
-
-
构造方法摘要
构造方法 构造器 描述 DefaultTableModel()
构造一个默认的DefaultTableModel
,它是一个零列和零行的表。DefaultTableModel(int rowCount, int columnCount)
构造DefaultTableModel
其中rowCount
和columnCount
为null
对象值。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<? extends 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<Object>
convertToVector(Object[] anArray)
返回包含与数组相同的对象的向量。protected static Vector<Vector<Object>>
convertToVector(Object[][] anArray)
返回包含与数组相同的对象的向量向量。int
getColumnCount()
返回此数据表中的列数。String
getColumnName(int column)
返回列名称。Vector<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<? extends Vector> dataVector, Vector<?> columnIdentifiers)
将当前dataVector
实例变量替换为新的Vector
行,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
-
-
-
-
构造方法详细信息
-
DefaultTableModel
public DefaultTableModel()
构造一个默认值DefaultTableModel
,它是一个零列和零行的表。
-
DefaultTableModel
public DefaultTableModel(int rowCount, int columnCount)
构造DefaultTableModel
其中rowCount
和columnCount
为null
对象值。- 参数
-
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<? extends java.util.Vector>, java.util.Vector<?>)
,setValueAt(java.lang.Object, int, int)
-
DefaultTableModel
public DefaultTableModel(Object[] columnNames, int rowCount)
构造一个DefaultTableModel
,列columnNames
与rowCount
中的元素和rowCount
的null
对象值中的元素一样多。 每列的名称将取自columnNames
数组。- 参数
-
columnNames
-array
包含新列的名称; 如果这是null
则模型没有列 -
rowCount
- 表所包含的行数 - 另请参见:
-
setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>)
,setValueAt(java.lang.Object, int, int)
-
DefaultTableModel
public DefaultTableModel(Vector<? extends Vector> data, Vector<?> columnNames)
构造一个DefaultTableModel
并通过将data
和columnNames
传递给setDataVector
方法来初始化该表。- 参数
-
data
- 该表的数据,Vector
,Vector
Object
数值Object
-
columnNames
-vector
包含新列的名称 - 另请参见:
-
getDataVector()
,setDataVector(java.util.Vector<? extends 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<? extends java.util.Vector>, java.util.Vector<?>)
-
-
方法详细信息
-
getDataVector
public Vector<Vector> getDataVector()
返回Vector
的Vectors
,其中包含表的数据值。 外部向量中包含的向量每个都是单行值。 换句话说,要到达第1行第5列的单元格:((Vector)getDataVector().elementAt(1)).elementAt(5);
-
setDataVector
public void setDataVector(Vector<? extends Vector> dataVector, Vector<?> columnIdentifiers)
用新的Vector
行dataVector
替换当前的dataVector
实例变量。 每行在dataVector
表示为Vector
的Object
值。columnIdentifiers
是新列的名称。 在第一名称columnIdentifiers
被映射到第0列dataVector
。dataVector
每一行dataVector
调整为与columnIdentifiers
的列数相匹配,如果它太长则截断Vector
,或者如果它太短则添加null
值。请注意,为
dataVector
传入null
值dataVector
导致未指定的行为,这可能是一个例外。- 参数
-
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)
确保新行具有正确的列数。 这是通过使用在实现setSize
在方法Vector
其中截断其太长矢量,并追加null
■如果它们是太短了。 此方法还向所有侦听器发送tableChanged
通知消息。- 参数
-
e
- 此TableModelEvent
描述了添加行的位置。 如果null
则假定所有行都是新添加的 - 另请参见:
-
getDataVector()
-
rowsRemoved
public void rowsRemoved(TableModelEvent event)
相当于fireTableChanged
。- 参数
-
event
- 更改事件
-
setNumRows
public void setNumRows(int rowCount)
从Java 2平台v1.3开始已过时。 请改用setRowCount
。- 参数
-
rowCount
- 新的行数
-
setRowCount
public void setRowCount(int rowCount)
设置模型中的行数。 如果新大小大于当前大小,则将新行添加到模型的末尾。如果新大小小于当前大小,rowCount
丢弃索引rowCount
和更大的所有行。- 参数
-
rowCount
- 模型中的行数 - 从以下版本开始:
- 1.3
- 另请参见:
-
setColumnCount(int)
-
addRow
public void addRow(Vector<?> rowData)
在模型的末尾添加一行。 新行将包含null
,除非值rowData
指定。 将生成要添加的行的通知。- 参数
-
rowData
- 正在添加的行的可选数据
-
addRow
public void addRow(Object[] rowData)
在模型的末尾添加一行。 新行将包含null
,除非值rowData
指定。 将生成要添加的行的通知。- 参数
-
rowData
- 正在添加的行的可选数据
-
insertRow
public void insertRow(int row, Vector<?> rowData)
在模型中的row
处插入一行。 新行将包含null
,除非值rowData
指定。 将生成要添加的行的通知。- 参数
-
row
- 要插入的行的行索引 -
rowData
- 正在添加的行的可选数据 - 异常
-
ArrayIndexOutOfBoundsException
- 如果行无效
-
insertRow
public void insertRow(int row, Object[] rowData)
在模型中的row
处插入一行。 新行将包含null
,除非值rowData
指定。 将生成要添加的行的通知。- 参数
-
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
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
单元格值将新列添加到模型的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
通知消息。- 参数
-
columnName
- 新创建的列的标识符 -
columnData
- 要添加到列的新数据 - 另请参见:
-
addColumn(Object, Vector)
-
getRowCount
public int getRowCount()
返回此数据表中的行数。- Specified by:
-
getRowCount
在界面TableModel
- 结果
- 模型中的行数
- 另请参见:
-
TableModel.getColumnCount()
-
getColumnCount
public int getColumnCount()
返回此数据表中的列数。- Specified by:
-
getColumnCount
在界面TableModel
- 结果
- 模型中的列数
- 另请参见:
-
TableModel.getRowCount()
-
getColumnName
public String getColumnName(int column)
返回列名称。- Specified by:
-
getColumnName
在界面TableModel
- 重写:
-
getColumnName
在类AbstractTableModel
- 参数
-
column
- 要查询的列 - 结果
- 使用
columnIdentifiers
相应成员的字符串值的此列的名称。 如果columnIdentifiers
没有此索引的条目,则返回超类提供的默认名称。
-
isCellEditable
public boolean isCellEditable(int row, int column)
无论参数值如何,都返回true。- Specified by:
-
isCellEditable
,界面TableModel
- 重写:
-
isCellEditable
在类AbstractTableModel
- 参数
-
row
- 要查询其值的行 -
column
- 要查询其值的列 - 结果
- 真正
- 另请参见:
-
setValueAt(java.lang.Object, int, int)
-
getValueAt
public Object getValueAt(int row, int column)
返回单元格的属性值row
和column
。- Specified by:
-
getValueAt
在界面TableModel
- 参数
-
row
- 要查询其值的行 -
column
- 要查询其值的列 - 结果
- 指定单元格中的值Object
- 异常
-
ArrayIndexOutOfBoundsException
- 如果给出了无效的行或列
-
setValueAt
public void setValueAt(Object aValue, int row, int column)
设置单元格的对象值为column
和row
。aValue
是新值。 此方法将生成tableChanged
通知。- Specified by:
-
setValueAt
在界面TableModel
- 重写:
-
setValueAt
在课程AbstractTableModel
- 参数
-
aValue
- 新值; 这可以是null -
row
- 要更改其值的行 -
column
- 要更改其值的列 - 异常
-
ArrayIndexOutOfBoundsException
- 如果给出了无效的行或列 - 另请参见:
-
TableModel.getValueAt(int, int)
,TableModel.isCellEditable(int, int)
-
convertToVector
protected static Vector<Object> convertToVector(Object[] anArray)
返回包含与数组相同的对象的向量。- 参数
-
anArray
- 要转换的数组 - 结果
- 新的载体; 如果
anArray
是null
,则返回null
-
-