TableColumnModelインターフェースとは

広告

前のページ(各列の幅の調整方法の指定)で列幅をユーザーが変更した場合の動作を指定しましたが、列に関してもう少し細かく調整したい場合、列全体ではTableColumnModelインターフェースを実装したクラスを、個々の列に関してはTableColumnクラスを使います。

TableColumnModelはインターフェースです。JTableでの列に関する管理を行うにはTableColumnModelインターフェースを実装したクラスを用意する必要がありますけど、実装クラスとしてDefaultTableColumnModelクラスが用意されていますので、実際にはこちらを使っていきましょう。

まずはクラス図から見てください。

java.lang.Object
  javax.swing.table.DefaultTableColumnModel

public class DefaultTableColumnModel
extends Object
implements TableColumnModel, PropertyChangeListener,
ListSelectionListener, Serializable

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

コンストラクタ
DefaultTableColumnModel()
デフォルトのテーブル列モデルを作成します。

新規にDefaultTableColumnModelクラスのオブジェクトを作成する他に、既に作成したJTableクラスのオブジェクトからTableColumnModelを取り出すこともできます。

既存のJTableクラスのオブジェクトから取り出す場合は、JTableクラスの"getColumnModel"メソッドを使います。

このテーブルのすべての列情報を保持する TableColumnModel を返します。

戻り値:
  テーブルの列の状態を提供するオブジェクト

例えば下記のような記述となります。

JTable table = new JTable(8, 5);

DefaultTableColumnModel columnModel
  = (DefaultTableColumnModel)table.getColumnModel();

これで列全体を扱うTableColumnModelは取得できましたが、個々の列を表すTableColumnクラスも見ておいた方が話が分かりやすいので、次のページでTableColumnクラスについて先に見ておきましょう。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。