TableColumnクラスとは

広告

列の1つ1つを表すTableColumnクラスについて見ていきます。クラス図は下記のようになっています。

  • java.lang.Object
  • javax.swing.table.TableColumn
  • public class TableColumn extends Object implements Serializable

コンストラクタは4つ用意されています。

コンストラクタ
TableColumn()
デフォルトのモデルインデックスとして 0、デフォルトの幅として 75、レンダリングに null、およびエディタに null を使用するカバーメソッドです。
TableColumn(int modelIndex)
デフォルトの幅として 75、レンダリングに null、およびエディタに null を使用するカバーメソッドです。
TableColumn(int modelIndex, int width)
レンダリングに null、およびエディタに null を使用するカバーメソッドです。
TableColumn(int modelIndex, int width, TableCellRenderer cellRenderer, TableCellEditor cellEditor)
TableColumn のインスタンスを modelIndex で生成および初期化します。

1番目のコンストラクタをみてみます。

デフォルトのモデルインデックスとして 0、デフォルトの幅として 75、レン
ダリングに null、およびエディタに null を使用するカバーメソッドです。

これは2番目のコンストラクタで引数として"0"を指定した場合と同じです。モデルインデックスという概念が良く分からないのですが、このTableColumnクラスのオブジェクトを利用しようとする元のJTableオブジェクトが持っているインデックス番号0番目の列と同じ内容のものになるようです。

コンストラクタは色々ありますが、TableColumnクラスは直接オブジェクトを作成するというよりも、TableColumnModelクラスから必要な列を表すTableColumnオブジェクトを取り出して色々操作するといったことが主な使われ方になると思います。

その為、よく使われるメソッドを見ておきましょう。

まずは列の幅を変更するために使われる"setPreferredWidth"メソッドです。

列の適切な幅を preferredWidth に設定します。preferredWidth が幅の最小
値または最大値を超える場合は、適切な制限値に調整されます。 

preferredWidth から JTable (および JTableHeader) 内の列の幅を計算する
方法については、JTable の doLayout メソッドを参照してください。 

パラメータ:
  preferredWidth - 新規に設定された適切な幅

次に列に表示される値を変更するために使われる"setHeaderValue"メソッドです。

文字列表現が headerRenderer の値として使用される Object を設定します。
TableColumn が生成されるときのデフォルト headerValue は null です。 

パラメータ:
  headerValue - 新規の headerValue

例えば上記のようなメソッドがあります。使い方は次のページでみてみます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)