JTable クラス

[内容]

  2 次元の表を作成するためのクラスです

[主な変数]

  • public static final int AUTO_RESIZE_ALL_COLUMNS
    すべてのサイズ変更操作で,各列を均等にサイズ変更する

  • public static final int AUTO_RESIZE_LAST_COLUMN
    すべてのサイズ変更操作で,最終列だけに調整を適用する

  • public static final int AUTO_RESIZE_NEXT_COLUMN
    列をUIで調整するときは,次の列を逆方向に調整する

  • public static final int AUTO_RESIZE_OFF
    列幅の調整は自動的に行わずに,スクロールバーを使う

  • public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
    UIを調整するときは,それ以降の列を変更して列の合計幅を維持する(デフォルト)

[コンストラクタ]

[主なメソッド]

[使用例]

  1. プログラム例は,JTable クラスの各メソッド等の使用例です.2 次元配列を使用して,JTable オブジェクトを生成しています.目標の欄は,平均が 3000 を超えると true になるようにしています.

  2. プログラム例は,上と同じデータに対して,AbstractDataModel を使用して表を作成しています.目標の欄は,平均が 3000 を超えるとチェックが入るようにしています.図からも明らかなように,上で述べた欠点が改善されています.なお,この例では,数値を変更すると,平均,合計,及び,目標の欄も対応して変化します.

      なお,AbstractDataModel クラスは,抽象クラスであり,以下のようなメソッドを持っています.

    • public void fireTableCellUpdated(int row, int column)
      row 行 column 列のセルが変更されたことを,すべてのリスナーに通知する
    • public Class getColumnClass(int columnIndex)
      レンダラー(セルを描く)を使用するためには,実装する必要がある.実装しないと,上の例と同じ表示形式になってしまう.レンダラーは,各セルの値によって,以下のような表示方法をする.
        Boolean : チェックボックスを描く
        Number : 右寄せの数字
        ImageIcon : 中央にアイコン
        Object : オブジェクトのラベル(文字列)
    • public int getColumnCount()  ( TableModel から継承)
      列数を返すメソッドであり,必ず実装する必要がある
    • public String getColumnName(int column)
      列名を返すメソッドであり,実装しないと,列名がデフォルトの名前( A, B, ・・・ )になる
    • public int getRowCount()  ( TableModel から継承)
      行数を返すメソッドであり,必ず実装する必要がある
    • public Object getValueAt(int rowIndex, int columnIndex)  (TableModelから継承)
      セルの値を返すメソッドであり,必ず実装する必要がある
    • public boolean isCellEditable(int rowIndex, int columnIndex)
      セルが編集可能か否かを返す.実装しないと,すべてのセルが編集不可能になる.
    • public void setValueAt(Object aValue, int rowIndex, int columnIndex)
      セルの値を設定する.セルを編集しない場合は,実装する必要はない.

[参照]

JTree

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引