DefaultTableModel

来源:互联网 发布:windows7 软件中文乱码 编辑:程序博客网 时间:2024/05/20 09:09

写项目的时候经常遇到DefaultTableModel数据模型对象,之前对此认识不深,现在小小总结一下。

首先DefaultTableModel是一个类,这个类已经实现serializable和TableModel接口。使用的是Vector来存储单元格的值对象,该Vector由多个vector组成。

DefaultTableModel 返回Object 的一个列类。DefaultTableModelTableRowSorter 一起使用时将导致大量使用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);

返回:
vector,由包含表数据值的多个 vector 组成

起始在API中讲解的很详细,具体可以查看API,我这里总结的是之前遇到过的一些方法