写项目的时候经常遇到DefaultTableModel数据模型对象,之前对此认识不深,现在小小总结一下。
首先DefaultTableModel是一个类,这个类已经实现serializable和TableModel接口。使用的是Vector来存储单元格的值对象,该Vector由多个vector组成。
DefaultTableModel
返回Object
的一个列类。DefaultTableModel
与 TableRowSorter
一起使用时将导致大量使用toString
,这对于非 String
数据类型代价昂贵。如果与 TableRowSorter
一起使用DefaultTableModel
,建议最好重写 getColumnClass
以返回适当的类型。
此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行远程方法调用(Remote Method Invocation,RMI)。从 1.4 版本开始,已在java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见XMLEncoder
。
常用方法摘要:
getValueAt(int row,int column) 返回row和column处单元格的属性值
setValueAt(Object aValue,int row,int column) 设置column和row处单元格的对象值
getDataVector() 返回由多个包含表数据值的Vector组成的Vector
getRowCount() 返回数据表的行数
getColumnName(int column) 返回列名
addColumn(Object columnName) 添加一列到模型中
addColumn(Object columnName,Object[] columnData) 添加一列到模型中
addColumn(Object columnName,Vector coloumnData) 添加一列到模型中
isCellEdittable(int row,int column) 无论参数是什么都返回true
addRow(object[] rowData) 添加一行到模型结尾
addRow(Vector rowData) 添加一行到模型结尾
详细:
getDataVector
public Vector getDataVector()
Vector
组成的
Vector
。外层 vector 中包含的每个 vector 都是一行的值。换句话说,要获得第 1 行、第 5 列的单元格,可以使用以下代码:
((Vector)getDataVector().elementAt(1)).elementAt(5);
起始在API中讲解的很详细,具体可以查看API,我这里总结的是之前遇到过的一些方法