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 | columnIdentifiersVector列标识符。 | 
| protected Vector | dataVectorVector的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, removeTableModelListenerprotected 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 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.