public class DefaultTableModel extends AbstractTableModel implements Serializable
TableModel
,它使用Vector
的Vectors
来存储单元格值对象。
警告: DefaultTableModel
返回一个列类为Object
。 当DefaultTableModel
与使用TableRowSorter
这将导致广泛使用的toString
,这对于非String
数据类型是昂贵的。 如果您使用DefaultTableModel
与TableRowSorter
,强烈建议您覆盖getColumnClass
返回相应的类型。
警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,支持所有JavaBeans的长期存储已经添加到java.beans
包中。 请参阅XMLEncoder
。
TableModel
, getDataVector()
Modifier and Type | Field and Description |
---|---|
protected Vector |
columnIdentifiers
Vector 列标识符。
|
protected Vector |
dataVector
Vector 的
Vectors 的
Object 值。
|
listenerList
Constructor and Description |
---|
DefaultTableModel()
构造一个默认的
DefaultTableModel ,它是零列和零行的表。
|
DefaultTableModel(int rowCount, int columnCount)
构造一个
DefaultTableModel 与
rowCount 和
columnCount 的
null 对象值。
|
DefaultTableModel(Object[][] data, Object[] columnNames)
构建
DefaultTableModel ,并通过
data 和
columnNames 通过
setDataVector 方法
columnNames 表。
|
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 方法来
setDataVector 表。
|
Modifier and Type | Method and Description |
---|---|
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)
返回包含与数组相同对象的向量向量。
|
int |
getColumnCount()
返回此数据表中的列数。
|
String |
getColumnName(int column)
返回列名。
|
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 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 。
|
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener
protected Vector dataVector
Vector
的
Vectors
的
Object
值。
protected Vector columnIdentifiers
Vector
列标识符。
public DefaultTableModel()
DefaultTableModel
,它是零列和零行的表。
public DefaultTableModel(int rowCount, int columnCount)
DefaultTableModel
与
rowCount
和
columnCount
的
null
对象值。
rowCount
- 表所包含的行数
columnCount
- 表所包含的列数
setValueAt(java.lang.Object, int, int)
public DefaultTableModel(Vector columnNames, int rowCount)
DefaultTableModel
与columnNames
和rowCount
的null
对象值中的元素一样多的列。
每列的名称将从columnNames
向量中columnNames
。
columnNames
- vector
包含新列的名称;
如果这是null
那么模型没有列
rowCount
- 表所包含的行数
setDataVector(java.util.Vector, java.util.Vector)
,
setValueAt(java.lang.Object, int, int)
public DefaultTableModel(Object[] columnNames, int rowCount)
DefaultTableModel
与columnNames
和rowCount
的null
对象值中的元素一样多的列。
每列的名称将从columnNames
数组中columnNames
。
columnNames
- array
包含新列的名称;
如果这是null
那么模型没有列
rowCount
- 表所包含的行数
setDataVector(java.util.Vector, java.util.Vector)
,
setValueAt(java.lang.Object, int, int)
public DefaultTableModel(Vector data, Vector columnNames)
DefaultTableModel
并通过将
data
和
columnNames
传递给
setDataVector
方法来
setDataVector
表。
data
- 表中的数据,
Vector
的
Vector
的
Object
数值
columnNames
-
vector
包含新列的名称
getDataVector()
,
setDataVector(java.util.Vector, java.util.Vector)
public DefaultTableModel(Object[][] data, Object[] columnNames)
DefaultTableModel
,并通过data
和columnNames
通过setDataVector
方法columnNames
表。
Object[][]
数组中的第一个索引是行索引,第二个是列索引。
data
- 表的数据
columnNames
- 列的名称
getDataVector()
,
setDataVector(java.util.Vector, java.util.Vector)
public Vector getDataVector()
Vector
的Vectors
。
外向量中包含的向量各自是单行值。
换句话说,要进入第1列第5列的单元格:
((Vector)getDataVector().elementAt(1)).elementAt(5);
public void setDataVector(Vector dataVector, Vector columnIdentifiers)
dataVector
实例变量与新的Vector
行dataVector
。
每行在dataVector中dataVector
为Vector
的Object
值。
columnIdentifiers
是新列的名称。
columnIdentifiers
中的第一个名字映射到dataVector
第0列。
中的每行dataVector
被调节以匹配的列数columnIdentifiers
要么通过截断Vector
,如果它太长,或添加null
值,如果它太短。
请注意,传递null
值为dataVector
会导致未指定的行为,这可能是一个例外。
dataVector
- 新的数据向量
columnIdentifiers
- 列的名称
getDataVector()
public void setDataVector(Object[][] dataVector, Object[] columnIdentifiers)
dataVector
的值替换dataVector
实例变量中的值。
Object[][]
数组中的第一个索引是行索引,第二个是列索引。
columnIdentifiers
是新列的名称。
dataVector
- 新的数据向量
columnIdentifiers
- 列的名称
setDataVector(Vector, Vector)
public void newDataAvailable(TableModelEvent event)
fireTableChanged
。
event
- 变更事件
public void newRowsAdded(TableModelEvent e)
setSize
方法来Vector
,该方法Vector
太长的向量,如果它们太短,则附加null
。
此方法还向所有tableChanged
者发送一条tableChanged
通知消息。
e
- 此TableModelEvent
描述了行的添加位置。
如果null
它假定所有行都是新添加的
getDataVector()
public void rowsRemoved(TableModelEvent event)
fireTableChanged
。
event
- 变更事件
public void setNumRows(int rowCount)
setRowCount
。
public void setRowCount(int rowCount)
rowCount
和更大的所有行将被丢弃。
setColumnCount(int)
public void addRow(Vector rowData)
null
值,除非rowData
rowData。
将生成要添加的行的通知。
rowData
- 要添加的行的可选数据
public void addRow(Object[] rowData)
rowData
,否则新行将包含null
值。
将生成要添加的行的通知。
rowData
- 要添加的行的可选数据
public void insertRow(int row, Vector rowData)
row
。
新行将包含null
值,除非rowData
rowData。
将生成要添加的行的通知。
row
- 要插入的行的行索引
rowData
- 要添加的行的可选数据
ArrayIndexOutOfBoundsException
- 如果行无效
public void insertRow(int row, Object[] rowData)
row
。
新行将包含null
值,除非rowData
rowData。
将生成要添加的行的通知。
row
- 要插入的行的行索引
rowData
- 要添加的行的可选数据
ArrayIndexOutOfBoundsException
- 如果行无效
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
- 如果任何元素将被移出表的范围
public void removeRow(int row)
row
的行。
被删除的行的通知将被发送给所有的监听器。
row
- 要删除的行的行索引
ArrayIndexOutOfBoundsException
- 如果行无效
public void setColumnIdentifiers(Vector columnIdentifiers)
newIdentifier
s的数量大于当前的列数,则新列将添加到模型中每行的末尾。
如果newIdentifier
s的数目小于当前的列数,那么行的末尾的所有额外的列将被丢弃。
columnIdentifiers
- 列标识符的向量。
如果null
,将模型设置为零列
setNumRows(int)
public void setColumnIdentifiers(Object[] newIdentifiers)
newIdentifier
s的数量大于当前的列数,则新列将添加到模型中每行的末尾。
如果newIdentifier
s的数目少于当前的列数,则一行末尾的所有额外列将被丢弃。
newIdentifiers
- 列标识符数组。
如果null
,将模型设置为零列
setNumRows(int)
public void setColumnCount(int columnCount)
null
单元格值。
如果新大小小于当前大小,那么将丢弃索引为columnCount
或更大的所有列。
columnCount
- 模型中的新列数
setColumnCount(int)
public void addColumn(Object columnName)
columnName
,可能为null。
此方法将向所有收听者发送一条tableChanged
通知消息。
该方法是addColumn(Object, Vector)
的封面,采用null
作为数据向量。
columnName
- 要添加的列的标识符
public void addColumn(Object columnName, Vector columnData)
columnName
,可能为null。
columnData
是该列的可选数据向量。
如果是null
则列填充null
值。
否则,新数据将被添加到模型,从第一个元素到第0行等。此方法将向所有tableChanged
器发送一个tableChanged
通知消息。
columnName
- 要添加的列的标识符
columnData
- 要添加的列的可选数据
public void addColumn(Object columnName, Object[] columnData)
columnName
。
columnData
是列的可选数据数组。
如果是null
则列填充null
值。
否则,新的数据将被添加到从第0行tableChanged
的第一个元素开始的模型中。此方法将向所有收听者发送一个tableChanged
通知消息。
public int getRowCount()
getRowCount
在界面
TableModel
TableModel.getColumnCount()
public int getColumnCount()
getColumnCount
在界面
TableModel
TableModel.getRowCount()
public String getColumnName(int column)
getColumnName
在界面
TableModel
getColumnName
在
AbstractTableModel
column
- 正在查询的列
columnIdentifiers
。
如果columnIdentifiers
没有此索引的条目,则返回超类提供的默认名称。
public boolean isCellEditable(int row, int column)
isCellEditable
在接口
TableModel
isCellEditable
在
AbstractTableModel
row
- 要查询其值的行
column
- 要查询其值的列
setValueAt(java.lang.Object, int, int)
public Object getValueAt(int row, int column)
row
和
column
返回单元格的属性值。
getValueAt
在接口
TableModel
row
- 要查询其值的行
column
- 要查询其值的列
ArrayIndexOutOfBoundsException
- 如果给定无效的行或列
public void setValueAt(Object aValue, int row, int column)
column
和row
。
aValue
是新的值。
此方法将生成一个tableChanged
通知。
setValueAt
在接口
TableModel
setValueAt
在
AbstractTableModel
aValue
- 新价值;
这可以是null
row
- 要更改其值的行
column
- 其值要更改的列
ArrayIndexOutOfBoundsException
- 如果给定无效的行或列
TableModel.getValueAt(int, int)
,
TableModel.isCellEditable(int, int)
protected static Vector convertToVector(Object[] anArray)
anArray
- 要转换的数组
anArray
是null
,返回null