模块  java.desktop
软件包  javax.swing.table

Class DefaultTableModel

  • 实现的所有接口
    SerializableTableModel

    public class DefaultTableModel
    extends AbstractTableModel
    implements Serializable
    这是TableModel的实现,其使用VectorVectors来存储单元格值对象。

    警告: DefaultTableModel返回列类Object DefaultTableModelTableRowSorter DefaultTableModel使用时,这将导致广泛使用toString ,这对于非String数据类型来说是昂贵的。 如果您使用DefaultTableModelTableRowSorter ,强烈建议您覆盖getColumnClass以返回相应的类型。

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参见XMLEncoder

    另请参见:
    TableModelgetDataVector()Serialized Form
    • 字段详细信息

      • dataVector

        protected Vector<Vector> dataVector
        VectorVectorsObject值。
      • columnIdentifiers

        protected Vector columnIdentifiers
        列标识符的 Vector
    • 方法详细信息

      • setDataVector

        public void setDataVector​(Vector<? extends Vector> dataVector,
                                  Vector<?> columnIdentifiers)
        用新的VectordataVector替换当前的dataVector实例变量。 每行在dataVector表示为VectorObject值。 columnIdentifiers是新列的名称。 在第一名称columnIdentifiers被映射到第0列dataVector dataVector每一行dataVector调整为与columnIdentifiers的列数相匹配,如果它太长则截断Vector ,或者如果它太短则添加null值。

        请注意,为dataVector传入nulldataVector导致未指定的行为,这可能是一个例外。

        参数
        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)
        将一个或多个行从包含范围startend到模型中的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)
      • getColumnName

        public String getColumnName​(int column)
        返回列名称。
        Specified by:
        getColumnName在界面 TableModel
        重写:
        getColumnName在类 AbstractTableModel
        参数
        column - 要查询的列
        结果
        使用columnIdentifiers相应成员的字符串值的此列的名称。 如果columnIdentifiers没有此索引的条目,则返回超类提供的默认名称。
      • getValueAt

        public Object getValueAt​(int row,
                                 int column)
        返回单元格的属性值 rowcolumn
        Specified by:
        getValueAt在界面 TableModel
        参数
        row - 要查询其值的行
        column - 要查询其值的列
        结果
        指定单元格中的值Object
        异常
        ArrayIndexOutOfBoundsException - 如果给出了无效的行或列
      • convertToVector

        protected static Vector<Object> convertToVector​(Object[] anArray)
        返回包含与数组相同的对象的向量。
        参数
        anArray - 要转换的数组
        结果
        新的载体; 如果anArraynull ,则返回null
      • convertToVector

        protected static Vector<Vector<Object>> convertToVector​(Object[][] anArray)
        返回包含与数组相同的对象的向量向量。
        参数
        anArray - 要转换的双数组
        结果
        新的向量向量; 如果anArraynull ,则返回null