zoukankan      html  css  js  c++  java
  • DefaultTableModel API介绍

    javax.swing.table
    类 DefaultTableModel

    java.lang.Object
      
    继承者
    javax.swing.table.AbstractTableModel
          
    继承者
    javax.swing.table.DefaultTableModel
    
    所有已实现的接口:
    Serializable, TableModel

    public class DefaultTableModelextends AbstractTableModelimplements 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。

    另请参见:
    TableModel, getDataVector()

    字段摘要
    protected  Vector columnIdentifiers
              Vector,由多个列标识符组成。
    protected  Vector dataVector
              Vector,由包含多个 Object 值的 Vector 组成。
     
    从类 javax.swing.table.AbstractTableModel 继承的字段
    listenerList
     
    构造方法摘要
    DefaultTableModel()
              构造默认的 DefaultTableModel,它是一个零列零行的表。
    DefaultTableModel(int rowCount, int columnCount)
              构造一个具有 rowCount 行和 columnCount 列的 null 对象值的 DefaultTableModel
    DefaultTableModel(Object[][] data, Object[] columnNames)
              构造一个 DefaultTableModel,并通过将 datacolumnNames 传递到 setDataVector 方法来初始化该表。
    DefaultTableModel(Object[] columnNames, int rowCount)
              构造一个 DefaultTableModel,它的列数与 columnNames 中元素的数量相同,并具有 rowCountnull 对象值。
    DefaultTableModel(Vector columnNames, int rowCount)
              构造一个 DefaultTableModel,它的列数与 columnNames 中元素的数量相同,并具有 rowCountnull 对象值。
    DefaultTableModel(Vector data, Vector columnNames)
              构造一个 DefaultTableModel,并通过将 datacolumnNames 传递到 setDataVector 方法来初始化该表。
     
    方法摘要
     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)
              返回一个 vector,该 vector 由包含与该数组相同的对象的多个 vector 组成。
     int getColumnCount()
              返回此数据表中的列数。
     String getColumnName(int column)
              返回列名称。
     Vector getDataVector()
              返回由多个包含表数据值的 Vector 组成的 Vector
     int getRowCount()
              返回此数据表中的行数。
     Object getValueAt(int row, int column)
              返回 rowcolumn 处单元格的属性值。
     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)
              用新的行 VectordataVector)替换当前的 dataVector 实例变量。
     void setNumRows(int rowCount)
              从 Java 2 platform v1.3 开始已过时。
     void setRowCount(int rowCount)
              设置模型中的行数。
     void setValueAt(Object aValue, int row, int column)
              设置 columnrow 处单元格的对象值。
     
    从类 javax.swing.table.AbstractTableModel 继承的方法
    addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, removeTableModelListener
     
    从类 java.lang.Object 继承的方法
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
     
    字段详细信息

    dataVector

    protected Vector dataVector
    Vector,由包含多个 Object 值的 Vector 组成。

    columnIdentifiers

    protected Vector columnIdentifiers
    Vector,由多个列标识符组成。
    构造方法详细信息

    DefaultTableModel

    public DefaultTableModel()
    构造默认的 DefaultTableModel,它是一个零列零行的表。

    DefaultTableModel

    public DefaultTableModel(int rowCount,
                             int columnCount)
    构造一个具有 rowCount 行和 columnCount 列的 null 对象值的 DefaultTableModel
    参数:
    rowCount - 表的行数
    columnCount - 表的列数
    另请参见:
    setValueAt(java.lang.Object, int, int)

    DefaultTableModel

    public DefaultTableModel(Vector columnNames,
                             int rowCount)
    构造一个 DefaultTableModel,它的列数与 columnNames 中元素的数量相同,并具有 rowCountnull 对象值。每列的名称都取自 columnNames 向量。
    参数:
    columnNames - 包含新的列名称的 vector;如果该参数为 null,则该模型没有列
    rowCount - 表的行数
    另请参见:
    setDataVector(java.util.Vector, java.util.Vector), setValueAt(java.lang.Object, int, int)

    DefaultTableModel

    public DefaultTableModel(Object[] columnNames,
                             int rowCount)
    构造一个 DefaultTableModel,它的列数与 columnNames 中元素的数量相同,并具有 rowCountnull 对象值。每列的名称都取自 columnNames 数组。
    参数:
    columnNames - 包含新的列名称的 array;如果该参数为 null,则该模型没有列
    rowCount - 表的行数
    另请参见:
    setDataVector(java.util.Vector, java.util.Vector), setValueAt(java.lang.Object, int, int)

    DefaultTableModel

    public DefaultTableModel(Vector data,
                             Vector columnNames)
    构造一个 DefaultTableModel,并通过将 datacolumnNames 传递到 setDataVector 方法来初始化该表。
    参数:
    data - 表的数据,它是一个 Vector,由包含多个 Object 值的 Vector 组成
    columnNames - 包含新的列名称的 vector
    另请参见:
    getDataVector(), setDataVector(java.util.Vector, java.util.Vector)

    DefaultTableModel

    public DefaultTableModel(Object[][] data,
                             Object[] columnNames)
    构造一个 DefaultTableModel,并通过将 datacolumnNames 传递到 setDataVector 方法来初始化该表。Object[][] 数组中的第一个索引是行索引,第二个索引是列索引。
    参数:
    data - 表的数据
    columnNames - 列的名称
    另请参见:
    getDataVector(), setDataVector(java.util.Vector, java.util.Vector)
    方法详细信息

    getDataVector

    public Vector getDataVector()
    返回由多个包含表数据值的 Vector 组成的 Vector。外层 vector 中包含的每个 vector 都是一行的值。换句话说,要获得第 1 行、第 5 列的单元格,可以使用以下代码:

    ((Vector)getDataVector().elementAt(1)).elementAt(5);

    返回:
    vector,由包含表数据值的多个 vector 组成
    另请参见:
    newDataAvailable(javax.swing.event.TableModelEvent), newRowsAdded(javax.swing.event.TableModelEvent), setDataVector(java.util.Vector, java.util.Vector)

    setDataVector

    public void setDataVector(Vector dataVector,
                              Vector columnIdentifiers)
    用新的行 VectordataVector)替换当前的 dataVector 实例变量。每一行都用 dataVector 表示,dataVector 是由多个 Object 值组成的 VectorcolumnIdentifiers 是新列的名称。columnIdentifiers 中的第一个名称映射为 dataVector 中第 0 列。将 dataVector 中每一行调整为与 columnIdentifiers 中的列数匹配,这通过在 Vector 太长时截短它、在 Vector 太短时添加 null 值来实现。

    注意,为 dataVector 传入 null 值会导致未指定的行为,可能抛出异常。

    参数:
    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)
    确保新行的列数正确。这是通过使用 Vector 中的 setSize 方法来完成的,该方法在 Vector 太长时将其截短,在 Vector 太短时追加 null。此方法还向所有侦听器发送 tableChanged 通知消息。
    参数:
    e - 此 TableModelEvent 描述添加行的位置。如果为 null,则此方法假定所有行都是新添加的
    另请参见:
    getDataVector()

    rowsRemoved

    public void rowsRemoved(TableModelEvent event)
    等效于 fireTableChanged
    参数:
    event - 更改事件

    setNumRows

    public void setNumRows(int rowCount)
    从 Java 2 platform v1.3 开始已过时。请使用 setRowCount 替代。

    setRowCount

    public void setRowCount(int rowCount)
    设置模型中的行数。如果新的大小大于当前大小,则将新行添加到该模型的结尾,如果新的大小小于当前大小,则丢弃索引 rowCount 处及其之后的所有行。
    从以下版本开始:
    1.3
    另请参见:
    setColumnCount(int)

    addRow

    public void addRow(Vector rowData)
    添加一行到模型的结尾。如果未指定 rowData,则新行将包含 null 值。将生成添加行的通知。
    参数:
    rowData - 要添加的行数据(可选)

    addRow

    public void addRow(Object[] rowData)
    添加一行到模型的结尾。如果未指定 rowData,则新行将包含 null 值。将生成添加行的通知。
    参数:
    rowData - 要添加的行数据(可选)

    insertRow

    public void insertRow(int row,
                          Vector rowData)
    在模型中的 row 位置插入一行。如果未指定 rowData,则新行将包含 null 值。将生成添加行的通知。
    参数:
    row - 要插入的行的行索引
    rowData - 要添加的行数据(可选)
    抛出:
    ArrayIndexOutOfBoundsException - 如果 row 无效

    insertRow

    public void insertRow(int row,
                          Object[] rowData)
    在模型中的 row 位置插入一行。如果未指定 rowData,则新行将包含 null 值。将生成添加行的通知。
    参数:
    row - 要插入的行的行索引
    rowData - 要添加的行数据(可选)
    抛出:
    ArrayIndexOutOfBoundsException - 如果 row 无效

    moveRow

    public void moveRow(int start,
                        int end,
                        int to)
    start(包含)到 end(包含)范围中的一行或多行移到模型中的 to 位置。进行移动操作后,原先索引为 start 的行的索引将变为 to。此方法将向所有侦听器发送 tableChanged 通知消息。
    以下是移动操作的示例:

    1. moveRow(1,3,5); a|B|C|D|e|f|g|h|i|j|k - 移动前 a|e|f|g|h|B|C|D|i|j|k - 移动后

    2. moveRow(6,7,1); a|b|c|d|e|f|G|H|i|j|k - 移动前 a|G|H|b|c|d|e|f|i|j|k - 移动后

    参数:
    start - 要移动的起始行索引
    end - 要移动的结束行索引
    to - 行要移动到的目标位置
    抛出:
    ArrayIndexOutOfBoundsException - 如果任意元素将被移出该表的范围

    removeRow

    public void removeRow(int row)
    移除模型中 row 位置的行。向所有侦听器发送移除行的通知。
    参数:
    row - 要移除的行的行索引
    抛出:
    ArrayIndexOutOfBoundsException - 如果 row 无效

    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 单元格值。如果新大小小于当前大小,则将丢弃索引 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)
    将一列添加到模型中。新列的标识符将为 columnNamecolumnData 是该列的可选数据数组。如果它为 null,则使用 null 值填充该列。否则,将新数据添加到模型中,第一个元素添加到第 0 行,依此类推。此方法将向所有侦听器发送 tableChanged 通知消息。
    另请参见:
    addColumn(Object, Vector)

    getRowCount

    public int getRowCount()
    返回此数据表中的行数。
    指定者:
    接口 TableModel 中的 getRowCount
    返回:
    该模型中的行数
    另请参见:
    TableModel.getColumnCount()

    getColumnCount

    public int getColumnCount()
    返回此数据表中的列数。
    指定者:
    接口 TableModel 中的 getColumnCount
    返回:
    该模型中的列数
    另请参见:
    TableModel.getRowCount()

    getColumnName

    public String getColumnName(int column)
    返回列名称。
    指定者:
    接口 TableModel 中的 getColumnName
    覆盖:
    AbstractTableModel 中的 getColumnName
    参数:
    column - 被查询的列
    返回:
    此列的名称,它使用 columnIdentifiers 中适当成员的字符串值。如果 columnIdentifiers 不具有此索引的条目,则返回由超类提供的默认名称

    isCellEditable

    public boolean isCellEditable(int row,
                                  int column)
    无论参数值是多少都返回 true。
    指定者:
    接口 TableModel 中的 isCellEditable
    覆盖:
    AbstractTableModel 中的 isCellEditable
    参数:
    row - 要查询其值的行
    column - 要查询其值的列
    返回:
    true
    另请参见:
    setValueAt(java.lang.Object, int, int)

    getValueAt

    public Object getValueAt(int row,
                             int column)
    返回 rowcolumn 处单元格的属性值。
    指定者:
    接口 TableModel 中的 getValueAt
    参数:
    row - 要查询其值的行
    column - 要查询其值的列
    返回:
    指定单元格处的值 Object
    抛出:
    ArrayIndexOutOfBoundsException - 如果给定了无效的 row 或 column

    setValueAt

    public void setValueAt(Object aValue,
                           int row,
                           int column)
    设置 columnrow 处单元格的对象值。aValue 是新值。此方法将生成一个 tableChanged 通知。
    指定者:
    接口 TableModel 中的 setValueAt
    覆盖:
    AbstractTableModel 中的 setValueAt
    参数:
    aValue - 新值,可以为 null
    row - 要更改其值的行
    column - 要更改其值的列
    抛出:
    ArrayIndexOutOfBoundsException - 如果给定了无效的 row 或 column
    另请参见:
    TableModel.getValueAt(int, int), TableModel.isCellEditable(int, int)

    convertToVector

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

    convertToVector

    protected static Vector convertToVector(Object[][] anArray)
    返回一个 vector,该 vector 由包含与该数组相同的对象的多个 vector 组成。
    参数:
    anArray - 要转换的二维数组
    返回:
    由多个 vector 组成的新 vector;如果 anArraynull,则返回 null

    原文:http://www.apihome.cn/api/java/DefaultTableModel.html

  • 相关阅读:
    20165215 2017-2018-2 《Java程序设计》第4周学习总结
    20165215 2017-2018-2 《Java程序设计》第3周学习总结
    20165215 2017-2018-2 《Java程序设计》第2周学习总结
    20165215 第一次测试总结
    20165215 2017-2018-2《Java程序设计》第一周学习总结
    20165215 预备作业3 Linux安装及学习
    20165215 学习基础和c语言基础调查
    20165215 我期望的师生关系
    20165220 Java第三周学习总结
    20165220预备作业3 Linux安装及学习
  • 原文地址:https://www.cnblogs.com/qiangupc/p/3948107.html
Copyright © 2011-2022 走看看