Java プラットフォーム 1.2

javax.swing.table
クラス DefaultTableModel

java.lang.Object
  |
  +--javax.swing.table.AbstractTableModel
        |
        +--javax.swing.table.DefaultTableModel

public class DefaultTableModel
extends AbstractTableModel
implements Serializable

セル値のオブジェクトを格納するために、一連の Vector の中の 1 つの Vector を使う TableModel の実装です。

注:
DefaultTableModel の API には、addColumn() メソッドと removeColumn() メソッドはありますが、インデックスで列を挿入するメソッド、または列を移動するメソッドはありません。それは、JTable がこのモデルの列の順序に基づいて列を表示しないからです。そのため、ここで列を配置し直してもあまり意味がありません。TableColumnModel の列順序付けメソッドを参照してください。

警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。今後の Swing リリースでは、長期間の持続性をサポートする予定です。

関連項目:
TableModel, getDataVector(), 直列化された形式

フィールドの概要
protected  Vector columnIdentifiers
          列識別子の Vector です。
protected  Vector dataVector
          Object 値の Vector です。
 
クラス javax.swing.table.AbstractTableModel から継承したフィールド
listenerList
 
コンストラクタの概要
DefaultTableModel()
          列が 0、行が 0 のテーブルであるデフォルトの DefaultTableModel を構築します。
DefaultTableModel(int numRows, int numColumns)
          numRows および numColumns の null オブジェクト値で DefaultTableModel を構築します。
DefaultTableModel(Object[][] data, Object[] columnNames)
          DefaultTableModel を構築し、data と columnNames を setDataVector() メソッドに渡すことにより、そのテーブルを初期化します。
DefaultTableModel(Object[] columnNames, int numRows)
          columnNames にある要素と同じ数の列、および numRows の null オブジェクト値で DefaultTableModel を構築します。
DefaultTableModel(Vector columnNames, int numRows)
          columnNames にある要素と同じ数の列、および numRows の null オブジェクト値で DefaultTableModel を構築します。
DefaultTableModel(Vector data, Vector columnNames)
          DefaultTableModel を構築し、data と columnNames を setDataVector() メソッドに渡すことにより、テーブルを初期化します。
 
メソッドの概要
 void addColumn(Object columnName)
          モデルに列を追加します。
 void addColumn(Object columnName, Object[] columnData)
          名前が columnName のモデルに列を追加します。
 void addColumn(Object columnName, Vector columnData)
          モデルに列を追加します。
 void addRow(Object[] rowData)
          モデルの最後に行を追加します。
 void addRow(Vector rowData)
          モデルの最後に行を追加します。
protected static Vector convertToVector(Object[] anArray)
          配列と同じオブジェクトを格納する Vector を返します。
protected static Vector convertToVector(Object[][] anArray)
          配列と同じオブジェクトを格納する一連の Vector の中の 1 つの Vector を返します。
 int getColumnCount()
          データテーブル内の列の数を返します。
 String getColumnName(int column)
          列の名前を返します。
 Vector getDataVector()
          テーブルのデータ値を格納する Vector 群の中の Vector を返します。
 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)
          row および column にあるセルが編集可能な場合は、true を返します。
 void moveRow(int startIndex, int endIndex, int toIndex)
          モデルの startIndex から endIndex までの行を toIndex に移動します。
 void newDataAvailable(TableModelEvent event)
          fireTableChanged と同じです。
 void newRowsAdded(TableModelEvent event)
          新しい行が正しい列の数を持つことを確認します。
 void removeRow(int row)
          モデルの row にある行を削除します。
 void rowsRemoved(TableModelEvent event)
          fireTableChanged() と同じです。
 void setColumnIdentifiers(Object[] newIdentifiers)
          モデルの列識別子を置き換えます。
 void setColumnIdentifiers(Vector newIdentifiers)
          モデルの列識別子を置き換えます。
 void setDataVector(Object[][] newData, Object[] columnNames)
          dataVector インスタンス変数の値を、配列 newData の値で置き換えます。
 void setDataVector(Vector newData, Vector columnNames)
          現在の dataVector インスタンス変数を、新しい行の Vector である newData で置き換えます。
 void setNumRows(int newSize)
          モデルの行数を設定します。
 void setValueAt(Object aValue, int row, int column)
          column および row にあるセルのオブジェクト値を設定します。
 
クラス javax.swing.table.AbstractTableModel から継承したメソッド
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, removeTableModelListener
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

dataVector

protected Vector dataVector
Object 値の Vector です。

columnIdentifiers

protected Vector columnIdentifiers
列識別子の Vector です。
コンストラクタの詳細

DefaultTableModel

public DefaultTableModel()
列が 0、行が 0 のテーブルであるデフォルトの DefaultTableModel を構築します。

DefaultTableModel

public DefaultTableModel(int numRows,
                         int numColumns)
numRows および numColumns の null オブジェクト値で DefaultTableModel を構築します。
パラメータ:
numRows - テーブルの行数
numColumns - テーブルの列数
関連項目:
setValueAt(java.lang.Object, int, int)

DefaultTableModel

public DefaultTableModel(Vector columnNames,
                         int numRows)
columnNames にある要素と同じ数の列、および numRows の null オブジェクト値で DefaultTableModel を構築します。各列の名前は、columnNames 配列からとられます。
パラメータ:
columnNames - 新しい列の名前を格納する Vector。null の場合、モデルは列を持たない
numRows - テーブルの行数
関連項目:
setDataVector(java.util.Vector, java.util.Vector), setValueAt(java.lang.Object, int, int)

DefaultTableModel

public DefaultTableModel(Object[] columnNames,
                         int numRows)
columnNames にある要素と同じ数の列、および numRows の null オブジェクト値で DefaultTableModel を構築します。各列の名前は、columnNames 配列からとられます。
パラメータ:
columnNames - 新しい列の名前を格納する配列。null の場合、モデルは列を持たない
numRows - テーブルの行数
関連項目:
setDataVector(java.util.Vector, java.util.Vector), setValueAt(java.lang.Object, int, int)

DefaultTableModel

public DefaultTableModel(Vector data,
                         Vector columnNames)
DefaultTableModel を構築し、data と columnNames を setDataVector() メソッドに渡すことにより、テーブルを初期化します。
パラメータ:
data - テーブルのデータ
columnNames - 新しい列の名前を格納する Vector
関連項目:
getDataVector(), setDataVector(java.util.Vector, java.util.Vector)

DefaultTableModel

public DefaultTableModel(Object[][] data,
                         Object[] columnNames)
DefaultTableModel を構築し、data と columnNames を setDataVector() メソッドに渡すことにより、そのテーブルを初期化します。Object[][] の最初のインデックスは行のインデックス、2 番目は列のインデックスです。
パラメータ:
data - テーブルのデータ
columnNames - 列の名前
関連項目:
getDataVector(), setDataVector(java.util.Vector, java.util.Vector)
メソッドの詳細

getDataVector

public Vector getDataVector()
テーブルのデータ値を格納する Vector 群の中の Vector を返します。外部ベクトルに格納されているベクトルはそれぞれ単一行の値です。つまり、行 1、列 5 のセルは次のように指定します。

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

返される Vector は直接変更できます。セル値、行数は変更できます。モデルの列数を変更する必要がある場合は、addColumn()、removeColumn()、または setDataVector() の各メソッドを使います。dataVector の変更が終わったら、通知メソッドを使ってモデルに新しいデータを通知する必要があります。通知メソッドは、適切な TableModelListener メッセージを生成し、JTable およびこのモデルのほかの任意のリスナーに通知します。

関連項目:
newDataAvailable(javax.swing.event.TableModelEvent), newRowsAdded(javax.swing.event.TableModelEvent), setDataVector(java.util.Vector, java.util.Vector)

setDataVector

public void setDataVector(Vector newData,
                          Vector columnNames)
現在の dataVector インスタンス変数を、新しい行の Vector である newData で置き換えます。columnNames は、新しい列の名前です。columnNames の最初の名前は、newData の列 0 に対応します。newData の各行は、長すぎる場合は Vector を縮め、短すぎる場合は null 値を追加して、columnNames の列数に一致するように調整されます。

パラメータ:
newData - 新しいデータベクトル
columnNames - 列の名前
関連項目:
newDataAvailable(javax.swing.event.TableModelEvent), getDataVector()

setDataVector

public void setDataVector(Object[][] newData,
                          Object[] columnNames)
dataVector インスタンス変数の値を、配列 newData の値で置き換えます。Object[][] 配列の最初のインデックスは行のインデックス、2 番目は列のインデックスです。columnNames は新しい列の名前です。
関連項目:
setDataVector(Vector, Vector)

newDataAvailable

public void newDataAvailable(TableModelEvent event)
fireTableChanged と同じです。

newRowsAdded

public void newRowsAdded(TableModelEvent event)
新しい行が正しい列の数を持つことを確認します。そのために、このメソッドは Vector の setSize メソッドを使います。setSize メソッドは、長すぎる Vector を縮め、短すぎる場合は null を追加します。また、このメソッドはすべてのリスナーに tableChanged() 通知メッセージを送ります。
関連項目:
getDataVector()

rowsRemoved

public void rowsRemoved(TableModelEvent event)
fireTableChanged() と同じです。

setColumnIdentifiers

public void setColumnIdentifiers(Vector newIdentifiers)
モデルの列識別子を置き換えます。
パラメータ:
newIdentifiers - 列識別子の Vector。null はモデルを列なしに設定する
関連項目:
setNumRows(int)

setColumnIdentifiers

public void setColumnIdentifiers(Object[] newIdentifiers)
モデルの列識別子を置き換えます。newIdentifiers の数が現在の numColumns の数より多い場合、モデルの各行の最後に新しい列が追加されます。newIdentifier の数が現在の列数より少ない場合、行の最後の余分な列がすべて破棄されます。

パラメータ:
newIdentifiers - 列識別子の配列。null はモデルを列なしに設定する
関連項目:
setNumRows(int)

setNumRows

public void setNumRows(int newSize)
モデルの行数を設定します。新しいサイズが現在のサイズより大きい場合、モデルの最後に新しい行が追加されます。新しいサイズが現在のサイズより小さい場合、インデックス newSize 以降のすべての行が破棄されます。

パラメータ:
newSize - 新しい行数
関連項目:
setColumnIdentifiers(java.util.Vector)

addColumn

public void addColumn(Object columnName)
モデルに列を追加します。新しい列の識別子は columnName になります。このメソッドは、すべてのリスナーに tableChanged() 通知メッセージを送ります。このメソッドは、null をデータベクトルとして使う addColumn(Object, Vector) のカバーです。
パラメータ:
columnName - 追加される列の識別子
例外:
IllegalArgumentException - columnName が null の場合

addColumn

public void addColumn(Object columnName,
                      Vector columnData)
モデルに列を追加します。新しい列の識別子は columnName になります。columnData は、列のデータの任意の Vector です。それが null の場合、列の値は null になります。そうでない場合、モデルに新しいデータが追加され、最初の要素は行 0 になります。このメソッドは、すべてのリスナーに tableChanged() 通知メッセージを送ります。
パラメータ:
columnName - 追加される列の識別子
columnData - 追加される列の任意のデータ
例外:
IllegalArgumentException - columnName が null の場合

addColumn

public void addColumn(Object columnName,
                      Object[] columnData)
名前が columnName のモデルに列を追加します。
関連項目:
addColumn(Object, Vector)

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 - 行が無効な場合

insertRow

public void insertRow(int row,
                      Object[] rowData)
モデルの row に行を追加します。新しい行の値は、rowData が指定されていない場合は null になります。行の追加の通知が生成されます。
パラメータ:
row - 挿入される行の行インデックス
rowData - 追加される行の任意のデータ
例外:
ArrayIndexOutOfBoundsException - 行が無効な場合

moveRow

public void moveRow(int startIndex,
                    int endIndex,
                    int toIndex)
モデルの startIndex から endIndex までの行を toIndex に移動します。このメソッドは、すべてのリスナーに tableChanged() 通知メッセージを送ります。

移動例:

1. moveRow(1,3,5);

a|B|C|D|e|f|g|h|i|j|k - 移動前 a|e|f|B|C|D|g|h|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 - 移動後

パラメータ:
startIndex - 移動する行の開始インデックス
endIndex - 移動する行の終了インデックス
toIndex - 行の移動先
例外:
ArrayIndexOutOfBoundsException - インデックスが範囲外の場合。または endIndex が startIndex より小さい場合

removeRow

public void removeRow(int row)
モデルの row にある行を削除します。行の削除の通知がすべてのリスナーに送られます。
パラメータ:
row - 削除される行の行インデックス
例外:
ArrayIndexOutOfBoundsException - 行が無効な場合

getRowCount

public int getRowCount()
データテーブル内の行の数を返します。
戻り値:
モデルの行数

getColumnCount

public int getColumnCount()
データテーブル内の列の数を返します。
戻り値:
モデルの列数

getColumnName

public String getColumnName(int column)
列の名前を返します。
戻り値:
columnIdentfiers の適切なメンバの文字列値を使ったこの列の名前。columnIdentfiers が null の場合、またはこのインデックスのエントリがない場合、スーパークラスが提供するデフォルト名が返される
オーバーライド:
クラス AbstractTableModel 内の getColumnName

isCellEditable

public boolean isCellEditable(int row,
                              int column)
row および column にあるセルが編集可能な場合は、true を返します。そうでない場合、セルで setValueAt() を呼び出してもそのセルの値は変更されません。
パラメータ:
row - 値が参照される行
column - 値が参照される列
戻り値:
セルが編集可能な場合は true
オーバーライド:
クラス AbstractTableModel 内の isCellEditable
関連項目:
setValueAt(java.lang.Object, int, int)

getValueAt

public Object getValueAt(int row,
                         int column)
row および column にあるセルの属性値を返します。
パラメータ:
row - 値が参照される行
column - 値が参照される列
戻り値:
指定されたセルの値 Object
例外:
ArrayIndexOutOfBoundsException - 指定された行または列が無効な場合

setValueAt

public void setValueAt(Object aValue,
                       int row,
                       int column)
column および row にあるセルのオブジェクト値を設定します。aValue は新しい値です。このメソッドは、tableChanged() 通知を生成します。
パラメータ:
aValue - 新しい値。null も可
row - 値が変更される行
column - 値が変更される列
例外:
ArrayIndexOutOfBoundsException - 指定された行または列が無効な場合
オーバーライド:
クラス AbstractTableModel 内の setValueAt

convertToVector

protected static Vector convertToVector(Object[] anArray)
配列と同じオブジェクトを格納する Vector を返します。

convertToVector

protected static Vector convertToVector(Object[][] anArray)
配列と同じオブジェクトを格納する一連の Vector の中の 1 つの Vector を返します。

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.