JavaTM 2 Platform
Standard Ed. 6

javax.swing.table
類別 DefaultTableModel

java.lang.Object
  繼承者 javax.swing.table.AbstractTableModel
      繼承者 javax.swing.table.DefaultTableModel
所有已實作的介面:
Serializable, TableModel

public class DefaultTableModel
extends AbstractTableModel
implements 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

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only