モジュール java.desktop
パッケージ javax.swing.table

クラスDefaultTableModel

java.lang.Object
javax.swing.table.AbstractTableModel
javax.swing.table.DefaultTableModel
すべての実装されたインタフェース:
Serializable, TableModel

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

警告: DefaultTableModelObjectの列クラスを返します。 DefaultTableModelTableRowSorterを同時に使用すると、String以外のデータ型で使用すると負荷の大きいtoStringが大量に使用されます。 DefaultTableModelTableRowSorterを同時に使用するときは、適切な型を返せるように、getColumnClassをオーバーライドすることを強くお勧めします。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

関連項目:
TableModel, getDataVector()
  • フィールド詳細

    • dataVector

      protected Vector<Vector> dataVector
      Object値のVectorsの中のVectorです。
    • columnIdentifiers

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

    • DefaultTableModel

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

      public DefaultTableModel​(int rowCount, int columnCount)
      rowCountcolumnCountのオブジェクト値がnullであるDefaultTableModelを構築します。
      パラメータ:
      rowCount - テーブルが保持する行数
      columnCount - テーブルが保持する列数
      関連項目:
      setValueAt(java.lang.Object, int, int)
    • DefaultTableModel

      public DefaultTableModel​(Vector<?> columnNames, int rowCount)
      nullオブジェクト値のcolumnNamesrowCountに存在する要素数の列で、DefaultTableModelを構築します。 各列の名前は、columnNamesベクターからとられます。
      パラメータ:
      columnNames - 新しい列の名前を格納するvector。これがnullの場合、モデルは列を持たない
      rowCount - テーブルが保持する行数
      関連項目:
      setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>), setValueAt(java.lang.Object, int, int)
    • DefaultTableModel

      public DefaultTableModel​(Object[] columnNames, int rowCount)
      nullオブジェクト値のcolumnNamesrowCountに存在する要素数の列で、DefaultTableModelを構築します。 各列の名前は、columnNames配列からとられます。
      パラメータ:
      columnNames - 新しい列の名前を格納するarray。これがnullの場合、モデルは列を持たない
      rowCount - テーブルが保持する行数
      関連項目:
      setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>), setValueAt(java.lang.Object, int, int)
    • DefaultTableModel

      public DefaultTableModel​(Vector<? extends Vector> data, Vector<?> columnNames)
      DefaultTableModelを構築し、datacolumnNamessetDataVectorメソッドに渡して表を初期化します。
      パラメータ:
      data - テーブルのデータ(Object値のVectorの中のVector)
      columnNames - 新しい列の名前を格納するvector
      関連項目:
      getDataVector(), setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>)
    • DefaultTableModel

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

    • getDataVector

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

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

      戻り値:
      テーブルのデータの値を格納する一連のベクターの中のベクター
      関連項目:
      newDataAvailable(javax.swing.event.TableModelEvent), newRowsAdded(javax.swing.event.TableModelEvent), setDataVector(java.util.Vector<? extends java.util.Vector>, java.util.Vector<?>)
    • setDataVector

      public void setDataVector​(Vector<? extends Vector> dataVector, Vector<?> columnIdentifiers)
      現在のdataVectorインスタンス変数を、新しい行のVectorであるdataVectorに置き換えます。 dataVector内では、各行はいくつかのObject値からなるVectorとして表されます。columnIdentifiersは新しい列の名前です。 columnIdentifiersの最初の名前は、dataVectorの列0にマップされます。 dataVectorの各行は、長すぎる場合はVectorを切り詰め、短すぎる場合はnull値を追加して、columnIdentifiersの列数と一致するように調整されます。

      dataVectorに対してnull値を渡すと、指定しない動作になり、例外が発生するおそれがあります。

      パラメータ:
      dataVector - 新規のデータ・ベクター
      columnIdentifiers - 列の名前
      関連項目:
      getDataVector()
    • setDataVector

      public void setDataVector​(Object[][] dataVector, Object[] columnIdentifiers)
      dataVectorインスタンス変数の値を、配列dataVectorの値で置き換えます。 Object[][]配列の最初のインデックスは行インデックス、2番目は列インデックスです。columnIdentifiersは新しい列の名前です。
      パラメータ:
      dataVector - 新規のデータ・ベクター
      columnIdentifiers - 列の名前
      関連項目:
      setDataVector(Vector, Vector)
    • newDataAvailable

      public void newDataAvailable​(TableModelEvent event)
      fireTableChangedと同等です。
      パラメータ:
      event - 変更イベント
    • newRowsAdded

      public void newRowsAdded​(TableModelEvent e)
      新しい行の列数が正しいことを確認します。 そのために、このメソッドはVectorsetSizeメソッドを使用します。setSizeメソッドは、長すぎるベクターを切り詰め、短すぎる場合は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 - モデルの行数
      導入されたバージョン:
      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 - 行が無効だった場合
    • insertRow

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

      public void moveRow​(int start, int end, int to)
      モデルで、startからendまでの1行または複数行を、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の場合は、モデルの列を0に設定する
      関連項目:
      setNumRows(int)
    • setColumnIdentifiers

      public void setColumnIdentifiers​(Object[] newIdentifiers)
      モデルの列識別子を置き換えます。 newIdentifierの数が現在の列数より多い場合、モデルの各行の最後に新しい列が追加されます。 newIdentifierの数が現在の列数より少ない場合、行の最後の余分な列がすべて破棄されます。
      パラメータ:
      newIdentifiers - 列識別子の配列。 nullの場合は、モデルの列を0に設定する
      関連項目:
      setNumRows(int)
    • setColumnCount

      public void setColumnCount​(int columnCount)
      モデルの列数を設定します。 新しいサイズが現在のサイズより大きい場合、モデルの最後に新しい列が追加されセル値はnullになります。 新しいサイズが現在のサイズより小さい場合、インデックスcolumnCount以降のすべての列が破棄されます。
      パラメータ:
      columnCount - モデルの新規の列数
      導入されたバージョン:
      1.3
      関連項目:
      setColumnCount(int)
    • addColumn

      public void addColumn​(Object columnName)
      モデルに列を追加します。 新しい列の識別子はcolumnNameになります。この値はnullでもかまいません。 このメソッドは、すべてのリスナーにtableChanged通知メッセージを送ります。 このメソッドは、nullをデータ・ベクターとして使用するaddColumn(Object, Vector)のカバーです。
      パラメータ:
      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)
    • getRowCount

      public int getRowCount()
      データ・テーブル内の行の数を返します。
      定義:
      getRowCount、インタフェース: TableModel
      戻り値:
      モデルの行数
      関連項目:
      TableModel.getColumnCount()
    • getColumnCount

      public int getColumnCount()
      データ・テーブル内の列の数を返します。
      定義:
      getColumnCount、インタフェース: TableModel
      戻り値:
      モデルの列数
      関連項目:
      TableModel.getRowCount()
    • getColumnName

      public String getColumnName​(int column)
      列の名前を返します。
      定義:
      getColumnName、インタフェース: TableModel
      オーバーライド:
      getColumnName、クラス: AbstractTableModel
      パラメータ:
      column - 照会される列
      戻り値:
      columnIdentifiersの適切なメンバーの文字列値を使用したこの列の名前。 columnIdentifiersにこのインデックスのエントリがない場合、スーパー・クラスが提供するデフォルト名が返される。
    • isCellEditable

      public boolean isCellEditable​(int row, int column)
      パラメータ値に関係なく、trueを返します。
      定義:
      isCellEditable、インタフェース: TableModel
      オーバーライド:
      isCellEditable、クラス: AbstractTableModel
      パラメータ:
      row - 値が照会される行
      column - 値が照会される列
      戻り値:
      true
      関連項目:
      setValueAt(java.lang.Object, int, int)
    • getValueAt

      public Object getValueAt​(int row, int column)
      rowおよびcolumnに位置するセルの属性値を返します。
      定義:
      getValueAt、インタフェース: TableModel
      パラメータ:
      row - 値が照会される行
      column - 値が照会される列
      戻り値:
      指定されたセルのObject値
      例外:
      ArrayIndexOutOfBoundsException - 無効な行または列が指定された場合
    • setValueAt

      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)
    • convertToVector

      protected static Vector<Object> convertToVector​(Object[] anArray)
      配列と同じオブジェクトを格納するベクターを返します。
      パラメータ:
      anArray - 変換される配列
      戻り値:
      新規のベクター。anArraynullの場合、nullが返される
    • convertToVector

      protected static Vector<Vector<Object>> convertToVector​(Object[][] anArray)
      配列と同じオブジェクトを格納する一連のベクターの中の1つのベクターを返します。
      パラメータ:
      anArray - 変換されるdouble配列
      戻り値:
      新規のベクター。anArraynullの場合、nullが返される