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

クラスJTable

すべての実装されたインタフェース:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CellEditorListener, ListSelectionListener, RowSorterListener, TableColumnModelListener, TableModelListener, Scrollable

@JavaBean(defaultProperty="UI", description="A component which displays data in a two dimensional grid.") public class JTable extends JComponent implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible, RowSorterListener
JTableは、セルの通常の2次元テーブルを表示および編集するために使用されます。 JTable使用のタスク指向のマニュアルと例については、『The Java Tutorial』の「How to Use Tables」を参照してください。

JTableは、そのレンダリングおよび編集をカスタマイズできるようにする多数の機能を備える一方で、こうした機能のデフォルトを提供して簡単なテーブルを容易に設定できるようにしています。 たとえば、10行10列から構成されるテーブルは次のように設定できます。

      TableModel dataModel = new AbstractTableModel() {
          public int getColumnCount() { return 10; }
          public int getRowCount() { return 10;}
          public Object getValueAt(int row, int col) { return Integer.valueOf(row*col); }
      };
      JTable table = new JTable(dataModel);
      JScrollPane scrollpane = new JScrollPane(table);
 

JTableは通常、JScrollPaneの内部に配置されます。 デフォルトでは、水平スクロール・バーが必要ないようにJTableがその幅を調整します。 水平スクロール・バーを使用できるようにするには、AUTO_RESIZE_OFFsetAutoResizeMode(int)を呼び出します。 スタンドアロンのビュー(JScrollPaneの外側)内でJTableを使用し、ヘッダーを表示する場合は、getTableHeader()を使用してヘッダーを取得し、個別に表示できます。

行のソートおよびフィルタ・リングを可能にするには、RowSorterを使用します。 行ソーターは、次の2種類の方法で設定できます。

  • RowSorterを直接設定します。 たとえば、table.setRowSorter(new TableRowSorter(model))です。
  • autoCreateRowSorterプロパティをtrueに設定し、JTableが自動的にRowSorterを作成するようにします。 たとえば、setAutoCreateRowSorter(true)です。

JTableを使用するアプリケーションを設計する場合、テーブルのデータを表現するデータ構造に十分注意する必要があります。 DefaultTableModelObjectVectorsのVectorを使用してセルの値を格納する実装のモデルです。 アプリケーションからDefaultTableModelにデータをコピーするとともに、上記の例のとおり、データが直接JTableに渡されるように、TableModelインタフェースのメソッド内のデータをラップすることもできます。 これにより、モデルがデータにもっとも適した内部表現を自由に選択できることから、一層効果的なアプリケーションを作成できます。 AbstractTableModelまたはDefaultTableModelのどちらを使用するかを決める大まかな指針では、サブクラスを作成するための基底クラスとしてAbstractTableModelが使用され、サブクラス化が不要な場合にDefaultTableModelが使用されます。

ソースとして配布されるdemo領域の「TableExample」ディレクトリは、多数のJTableの使用方法に関する完全な例を提供します。この例には、データベースから取得するデータの編集可能なビューを提供するためにJTableを使用する方法や、特殊なレンダリングやエディタを使用するためにディスプレイ内の列を変更する方法などがあります。

JTableは整数型を排他的に使用して、それが表示するモデルの行と列をどちらも参照します。 JTableは単に表形式範囲のセルを取得してgetValueAt(int, int)を使用し、描画時にモデルから値を取り出します。 さまざまなJTableメソッドから返される列インデックスと行インデックスはJTable (ビュー)のものであり、モデルが使用するインデックスとは必ずしも同じではありません。

デフォルトでは、列はJTableで配置しなおされて、ビューの列がモデル内の列とは異なる順番で表示されるようになります。 これは、モデルの実装にまったく影響を与えません。列の並替えを行うときは、JTableは列の新しい順番を内部的に維持し、その列インデックスをモデルの照会前に変換します。

このため、TableModelを記述するときは、ビューで何が起こっているかにかかわらずモデルはそれ自身の座標系で照会されるので、列並べ替えイベントに待機する必要はありません。 examples配下には、列ではなく行の順番を変更するもう1つの座標系を挿入するための、この方法を利用した並べ替えアルゴリズムのサンプルが用意されています。

同様に、RowSorterから提供されるソート機能とフィルタリング機能を使用するときに、配下のTableModelがソートの方法を把握している必要はありません。ソート処理は、RowSorterによって行われます。 行ベースのJTableメソッドと配下のTableModelを使用する場合は、座標変換が必要になります。 行ベースのJTableメソッドはすべてRowSorterに関するものであり、配下のTableModelのメソッドと必ずしも一致していません。 たとえば、選択は常にJTableに関して行われるので、RowSorterを使用するときは、convertRowIndexToViewまたはconvertRowIndexToModelを使用して変換する必要があります。 JTableから配下のモデルに座標変換を行う方法を次に示します。

   int[] selection = table.getSelectedRows();
   for (int i = 0; i < selection.length; i++) {
     selection[i] = table.convertRowIndexToModel(selection[i]);
   }
   // selection is now in terms of the underlying TableModel
 

デフォルトでは、ソートが有効になっている場合、JTableは、ソート時にモデルの選択内容と可変の行の高さを保持します。 たとえば配下のモデルの行0が現在選択されている場合は、ソート後も配下のモデルの行0が選択されます。 視覚的には選択内容が変更されている可能性がありますが、配下のモデルの選択内容は変わっていません。 例外は、モデル・インデックスが可視でなくなった場合や、削除された場合です。 たとえば、モデルの行0がフィルタされて表示されなくなった場合、ソート後に選択内容は空になります。

J2SE 5では、JTableに、一般的な出力要求を実現できる便利なメソッドを追加しています。 新しいprint()メソッドを使用するだけで、迅速かつ容易に出力機能をアプリケーションに追加できます。 また、さらに高度な出力要求には、新しいgetPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)メソッドを使用できます。

すべてのJComponentクラスに関しては、InputMapActionMapを使用してActionオブジェクトとKeyStrokeを関連付け、指定した条件でアクションを実行できます。

警告: Swingはスレッドに対して安全ではありません。 詳細は、「Swing's Threading Policy」を参照してください。

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

導入されたバージョン:
1.2
関連項目:
  • フィールド詳細

    • AUTO_RESIZE_OFF

      public static final int AUTO_RESIZE_OFF
      列幅の調整は自動的に行わず、代わりに水平スクロール・バーを使います。
      関連項目:
    • AUTO_RESIZE_NEXT_COLUMN

      public static final int AUTO_RESIZE_NEXT_COLUMN
      列をUIで調整するときは、次の列を逆方向に調整します。
      関連項目:
    • AUTO_RESIZE_SUBSEQUENT_COLUMNS

      public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
      UIを調整するときは、それ以降の列を変更して列の合計幅を維持します。これはデフォルトの動作です。
      関連項目:
    • AUTO_RESIZE_LAST_COLUMN

      public static final int AUTO_RESIZE_LAST_COLUMN
      すべてのサイズ変更操作で、最終列だけに調整を適用します。
      関連項目:
    • AUTO_RESIZE_ALL_COLUMNS

      public static final int AUTO_RESIZE_ALL_COLUMNS
      すべてのサイズ変更操作で、各列を均等にサイズ変更します。
      関連項目:
    • dataModel

      protected TableModel dataModel
      テーブルのTableModel
    • columnModel

      protected TableColumnModel columnModel
      テーブルのTableColumnModel
    • selectionModel

      protected ListSelectionModel selectionModel
      行選択を追跡するのに使用される、テーブルのListSelectionModelです。
    • tableHeader

      protected JTableHeader tableHeader
      テーブルのTableHeaderです。
    • rowHeight

      protected int rowHeight
      テーブルの各行の高さをピクセルで表したものです。
    • rowMargin

      protected int rowMargin
      各行のセル間のマージンの高さをピクセルで表したものです。
    • gridColor

      protected Color gridColor
      グリッドの色です。
    • showHorizontalLines

      protected boolean showHorizontalLines
      showHorizontalLinesがtrueの場合、テーブルはセル間に水平線を描画します。
    • showVerticalLines

      protected boolean showVerticalLines
      showVerticalLinesがtrueの場合、テーブルはセル間に垂直線を描画します。
    • autoResizeMode

      protected int autoResizeMode
      テーブルが幅のサイズを自動変更して各列でテーブル幅全体を占めるようにするかどうかを指定し、そのサイズ変更の方法を指定します。
    • autoCreateColumnsFromModel

      protected boolean autoCreateColumnsFromModel
      trueの場合、列のデフォルト・セットを構築するためにTableModelを照会します。
    • preferredViewportSize

      protected Dimension preferredViewportSize
      Scrollableインタフェースによって使われ、初期可視領域を判定します。
    • rowSelectionAllowed

      protected boolean rowSelectionAllowed
      このテーブルで行選択が許可されている場合、trueです。
    • cellSelectionEnabled

      protected boolean cellSelectionEnabled
      Java 2プラットフォームv1.3では使用しません。 代わりにcolumnModelrowSelectionAllowedプロパティおよびcolumnSelectionAllowedプロパティを使用してください。 またはgetCellSelectionEnabledメソッドを使用してください。
    • editorComp

      protected transient Component editorComp
      編集時であれば、編集を処理しているComponentです。
    • cellEditor

      protected transient TableCellEditor cellEditor
      現在のセルが占める画面上の場所を上書きし、ユーザーがその内容を変更できるようにするアクティブなセル・エディタ・オブジェクトです。テーブルが現在編集中でない場合はnullになります。
    • editingColumn

      protected transient int editingColumn
      編集中のセルの列を識別します。
    • editingRow

      protected transient int editingRow
      編集中のセルの行を識別します。
    • defaultRenderersByColumnClass

      protected transient Hashtable<Object,Object> defaultRenderersByColumnClass
      セルの内容を表示するオブジェクトのテーブルです。TableModelインタフェースのgetColumnClassで宣言されたクラスによるインデックスが付いています。
    • defaultEditorsByColumnClass

      protected transient Hashtable<Object,Object> defaultEditorsByColumnClass
      セルの内容を表示および編集するオブジェクトのテーブルです。TableModelインタフェースのgetColumnClassで宣言されたクラスによるインデックスが付いています。
    • selectionForeground

      protected Color selectionForeground
      選択されたセルのフォアグラウンド・カラー。
    • selectionBackground

      protected Color selectionBackground
      選択されたセルのバックグラウンド・カラー。
  • コンストラクタの詳細

    • JTable

      public JTable()
      デフォルト・データ・モデル、デフォルト列モデル、およびデフォルト選択モデルを使用して初期化される、デフォルトのJTableを構築します。
      関連項目:
    • JTable

      public JTable(TableModel dm)
      データ・モデルdm、デフォルト列モデル、およびデフォルト選択モデルを使用して初期化されるJTableを構築します。
      パラメータ:
      dm - テーブルのデータ・モデル
      関連項目:
    • JTable

      public JTable(TableModel dm, TableColumnModel cm)
      データ・モデルdm、列モデルcm、およびデフォルト選択モデルを使用して初期化されるJTableを構築します。
      パラメータ:
      dm - テーブルのデータ・モデル
      cm - テーブルの列モデル
      関連項目:
    • JTable

      public JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
      データ・モデルdm、列モデルcm、および選択モデルsmを使用して初期化されるJTableを構築します。 パラメータのいずれかがnullの場合、このメソッドは対応するデフォルト・モデルでテーブルを初期化します。 autoCreateColumnsFromModelフラグはcmがnull以外の場合はfalseに、そうでない場合はtrueに設定され、列モデルにはdm内の列に適したTableColumnsが入ります。
      パラメータ:
      dm - テーブルのデータ・モデル
      cm - テーブルの列モデル
      sm - テーブルの行選択モデル
      関連項目:
    • JTable

      public JTable(int numRows, int numColumns)
      DefaultTableModelを使用して、numRows行とnumColumns列の空のセルを持つJTableを構築します。 列は、「A」、「B」、「C」といった形式の名前を持ちます。
      パラメータ:
      numRows - テーブルが保持する行数
      numColumns - テーブルが保持する列数
      関連項目:
    • JTable

      public JTable(Vector<? extends Vector> rowData, Vector<?> columnNames)
      VectorsVectorの値を表示するJTable、つまりrowDataを、列名columnNamesで構築します。 rowDataに格納されたVectorsは、その行の値を保持する必要があります。 つまり、行1、列5に位置するセルの値は次のコードで取得できます。
      ((Vector)rowData.elementAt(1)).elementAt(5);
      パラメータ:
      rowData - 新しいテーブルのデータ
      columnNames - 各列の名前
    • JTable

      public JTable(Object[][] rowData, Object[] columnNames)
      2次元配列rowDataの値を列名columnNamesを使って表示するJTableを構築します。rowDataは行の配列なので、行1、列5に位置するセルの値は次のコードで取得できます。
       rowData[1][5]; 

      すべての行は、columnNamesと同じ長さである必要があります。

      パラメータ:
      rowData - 新しいテーブルのデータ
      columnNames - 各列の名前
  • メソッドの詳細

    • addNotify

      public void addNotify()
      configureEnclosingScrollPaneメソッドを呼び出します。
      オーバーライド:
      addNotify、クラスJComponent
      関連項目:
    • configureEnclosingScrollPane

      protected void configureEnclosingScrollPane()
      通常はこのJTableが囲み側JScrollPaneviewportViewですが、その場合、特にテーブルのtableHeaderをスクロール・ペインのcolumnHeaderViewとしてインストールすることによって、このScrollPaneを設定します。 new JScrollPane(myTable)を使用して通常の方法でJTableJScrollPaneに追加すると、JTableで(表がビューポートに追加されるときに)addNotifyが呼び出されます。 次に、JTableaddNotifyメソッドがこのメソッドを呼び出します。このメソッドは、サブクラスがこのデフォルトのインストール・プロシージャをオーバーライドできるように保護されています。
      関連項目:
    • removeNotify

      public void removeNotify()
      unconfigureEnclosingScrollPaneメソッドを呼び出します。
      オーバーライド:
      removeNotify、クラスJComponent
      関連項目:
    • unconfigureEnclosingScrollPane

      protected void unconfigureEnclosingScrollPane()
      囲み側のスクロール・ペインのcolumnHeaderViewnullに置き換えることによって、configureEnclosingScrollPaneの効果を取り消します。 JTableremoveNotifyメソッドがこのメソッドを呼び出します。このメソッドは、サブクラスがこのデフォルトのアンインストール・プロシージャをオーバーライドできるように保護されています。
      導入されたバージョン:
      1.3
      関連項目:
    • createScrollPaneForTable

      @Deprecated public static JScrollPane createScrollPaneForTable(JTable aTable)
      非推奨。
      Swing version 1.0.2以降は、new JScrollPane(aTable)に置き換えられています。
      new JScrollPane(aTable)と同等です。
      パラメータ:
      aTable - スクロール・ペインに使用されるJTable
      戻り値:
      aTableを使用して作成されたJScrollPane
    • setTableHeader

      @BeanProperty(description="The JTableHeader instance which renders the column headers.") public void setTableHeader(JTableHeader tableHeader)
      このJTabletableHeadernewHeaderに設定します。 nulltableHeaderは有効です。
      パラメータ:
      tableHeader - 新しいtableHeader
      関連項目:
    • getTableHeader

      public JTableHeader getTableHeader()
      このJTableによって使用されるtableHeaderを返します。
      戻り値:
      このテーブルが使用するtableHeader
      関連項目:
    • setRowHeight

      @BeanProperty(description="The height of the specified row.") public void setRowHeight(int rowHeight)
      すべてのセルの高さをピクセル単位でrowHeightに設定し、再検証してペイントし直します。 セルの高さは、行の高さから行マージンを引いた値になります。
      パラメータ:
      rowHeight - 新しい行の高さ
      例外:
      IllegalArgumentException - rowHeightが1より小さい場合
      関連項目:
    • getRowHeight

      public int getRowHeight()
      テーブル行の高さをピクセルで返します。
      戻り値:
      ピクセル単位のテーブル行の高さ
      関連項目:
    • setRowHeight

      @BeanProperty(description="The height in pixels of the cells in <code>row</code>") public void setRowHeight(int row, int rowHeight)
      rowの高さをrowHeightに設定し、再検証してペイントし直します。 この行のセルの高さは、行の高さから行マージンを引いたものです。
      パラメータ:
      row - 高さが変更される行
      rowHeight - ピクセル単位での新しい行の高さ
      例外:
      IllegalArgumentException - rowHeightが1より小さい場合
      導入されたバージョン:
      1.3
    • getRowHeight

      public int getRowHeight(int row)
      rowのセルの高さをピクセル単位で返します。
      パラメータ:
      row - 高さが返される行
      戻り値:
      ピクセル単位での行のセルの高さ
      導入されたバージョン:
      1.3
    • setRowMargin

      @BeanProperty(description="The amount of space between cells.") public void setRowMargin(int rowMargin)
      隣接する行のセルの間隔を設定します。
      パラメータ:
      rowMargin - 行のセル間のピクセル数
      関連項目:
    • getRowMargin

      public int getRowMargin()
      セルの間隔をピクセル単位で返します。 getIntercellSpacing().heightと同等です。
      戻り値:
      行のセル間のピクセル数
      関連項目:
    • setIntercellSpacing

      @BeanProperty(bound=false, description="The spacing between the cells, drawn in the background color of the JTable.") public void setIntercellSpacing(Dimension intercellSpacing)
      rowMargincolumnMargin、つまりセル間のスペースの高さと幅を、intercellSpacingに設定します。
      パラメータ:
      intercellSpacing - セル間の新しい幅と高さを指定するDimension
      関連項目:
    • getIntercellSpacing

      public Dimension getIntercellSpacing()
      セル間の水平間隔と垂直間隔を返します。 デフォルトの間隔はルック・アンド・フィールに依存します。
      戻り値:
      セル間の水平間隔と垂直間隔
      関連項目:
    • setGridColor

      @BeanProperty(description="The grid color.") public void setGridColor(Color gridColor)
      グリッド線の描画に使用する色をgridColorに設定し、再表示します。 デフォルトの色はルック・アンド・フィールに依存します。
      パラメータ:
      gridColor - グリッド線の新しい色
      例外:
      IllegalArgumentException - gridColornullである場合
      関連項目:
    • getGridColor

      public Color getGridColor()
      グリッド線の描画に使用する色を返します。 デフォルトの色はルック・アンド・フィールに依存します。
      戻り値:
      グリッド線を描画するのに使う色
      関連項目:
    • setShowGrid

      @BeanProperty(description="The color used to draw the grid lines.") public void setShowGrid(boolean showGrid)
      テーブルがセルの周囲にグリッド線を描画するかどうかを設定します。 showGridがtrueの場合は描画し、falseの場合は描画しません。 この状態はそれぞれが別々に照会されるshowHorizontalLinesshowVerticalLinesという2つの変数で保持されるので、getShowGridメソッドはありません。
      パラメータ:
      showGrid - テーブル・ビューがグリッド線を描画する場合はtrue
      関連項目:
    • setShowHorizontalLines

      @BeanProperty(description="Whether horizontal lines should be drawn in between the cells.") public void setShowHorizontalLines(boolean showHorizontalLines)
      テーブルがセル間に水平線を描画するかどうかを設定します。 showHorizontalLinesがtrueの場合は描画し、falseの場合は描画しません。
      パラメータ:
      showHorizontalLines - テーブル・ビューが水平線を描画する場合はtrue
      関連項目:
    • setShowVerticalLines

      @BeanProperty(description="Whether vertical lines should be drawn in between the cells.") public void setShowVerticalLines(boolean showVerticalLines)
      テーブルがセル間に垂直線を描画するかどうかを設定します。 showVerticalLinesがtrueの場合は描画し、falseの場合は描画しません。
      パラメータ:
      showVerticalLines - テーブル・ビューが垂直線を描画する場合はtrue
      関連項目:
    • getShowHorizontalLines

      public boolean getShowHorizontalLines()
      テーブルがセル間に水平線を描画する場合はtrue、描画しない場合はfalseを返します。 デフォルト値はルック・アンド・フィールに依存します。
      戻り値:
      テーブルがセル間に水平線を描画する場合はtrue、描画しない場合はfalse
      関連項目:
    • getShowVerticalLines

      public boolean getShowVerticalLines()
      テーブルがセル間に垂直線を描画する場合はtrue、描画しない場合はfalseを返します。 デフォルト値はルック・アンド・フィールに依存します。
      戻り値:
      テーブルがセル間に垂直線を描画する場合はtrue、描画しない場合はfalse
      関連項目:
    • setAutoResizeMode

      @BeanProperty(enumerationValues={"JTable.AUTO_RESIZE_OFF","JTable.AUTO_RESIZE_NEXT_COLUMN","JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS","JTable.AUTO_RESIZE_LAST_COLUMN","JTable.AUTO_RESIZE_ALL_COLUMNS"}, description="Whether the columns should adjust themselves automatically.") public void setAutoResizeMode(int mode)
      テーブルのサイズ変更時にテーブルの自動サイズ変更モードを設定します。 さまざまなサイズ変更モードの動作の詳細については、doLayout()を参照してください。
      パラメータ:
      mode - 次の5つの有効値のいずれか。AUTO_RESIZE_OFF、AUTO_RESIZE_NEXT_COLUMN、AUTO_RESIZE_SUBSEQUENT_COLUMNS、AUTO_RESIZE_LAST_COLUMN、AUTO_RESIZE_ALL_COLUMNS
      関連項目:
    • getAutoResizeMode

      public int getAutoResizeMode()
      テーブルの自動サイズ変更モードを返します。 デフォルト・モードはAUTO_RESIZE_SUBSEQUENT_COLUMNSです。
      戻り値:
      テーブルのautoResizeMode
      関連項目:
    • setAutoCreateColumnsFromModel

      @BeanProperty(description="Automatically populates the columnModel when a new TableModel is submitted.") public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
      このテーブルのautoCreateColumnsFromModelフラグを設定します。 このメソッドは、autoCreateColumnsFromModelがfalseからtrueに変更された場合にcreateDefaultColumnsFromModelを呼び出します。
      パラメータ:
      autoCreateColumnsFromModel - JTableが列を自動作成する場合はtrue
      関連項目:
    • getAutoCreateColumnsFromModel

      public boolean getAutoCreateColumnsFromModel()
      テーブルがデフォルトの列をモデルから作成するかどうかを指定します。 trueの場合、setModelは既存の列をクリアして、新しいモデルから新しい列を作成します。 また、tableChanged通知のイベントが、テーブル全体が変更されたことを示している場合は、列が再構築されます。 デフォルトは、trueです。
      戻り値:
      テーブルのautoCreateColumnsFromModel
      関連項目:
    • createDefaultColumnsFromModel

      public void createDefaultColumnsFromModel()
      このメソッドはTableModelインタフェースに定義されたgetColumnCountメソッドを使って、データ・モデルからテーブルのデフォルトの列を作成します。

      モデルからの情報に基づいて新しい列を作成する前に、既存の列があればそれをクリアします。

      関連項目:
    • setDefaultRenderer

      public void setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)
      TableColumnにレンダラが設定されていない場合に使用する、デフォルトのセル・レンダラを設定します。 レンダリングがnullの場合は、この列クラスのデフォルトのレンダリングを削除します。
      パラメータ:
      columnClass - このcolumnClassにデフォルトのセル・レンダリングを設定する
      renderer - このcolumnClassに使うデフォルトのセル・レンダリング
      関連項目:
    • getDefaultRenderer

      public TableCellRenderer getDefaultRenderer(Class<?> columnClass)
      TableColumnにレンダラが設定されていない場合に使用する、セル・レンダラを返します。 セルのレンダリング時には、レンダリングは列内のセルのクラスに基づいてエントリのHashtableから取得されます。 このcolumnClassにエントリがない場合、このメソッドはもっとも明確なスーパー・クラスのエントリを返します。 JTableは、そのすべてを変更または置換できるObjectNumber、およびBooleanのエントリをインストールします。
      パラメータ:
      columnClass - このcolumnClassのデフォルトのセル・レンダリングを返す
      戻り値:
      このcolumnClassのレンダリング
      関連項目:
    • setDefaultEditor

      public void setDefaultEditor(Class<?> columnClass, TableCellEditor editor)
      TableColumnにエディタが設定されていない場合に使用する、デフォルトのセル・エディタを設定します。 テーブルまたはテーブル内の特定の列で編集が必要ない場合は、TableModelインタフェースのisCellEditableメソッドを使用して、このJTableがこうした列でエディタを起動することのないようにします。 エディタがnullの場合は、この列クラスからデフォルトのエディタを削除します。
      パラメータ:
      columnClass - このcolumnClassにデフォルトのセル・エディタを設定する
      editor - このcolumnClassに使うデフォルトのセル・エディタ
      関連項目:
    • getDefaultEditor

      public TableCellEditor getDefaultEditor(Class<?> columnClass)
      TableColumnにエディタが設定されていない場合に使用するエディタを返します。 セルの編集時には、エディタは列内のセルのクラスに基づいてエントリのHashtableから取得されます。 このcolumnClassにエントリがない場合、このメソッドはもっとも明確なスーパー・クラスのエントリを返します。 JTableは、そのすべてを変更または置換できるObjectNumber、およびBooleanのエントリをインストールします。
      パラメータ:
      columnClass - このcolumnClassのデフォルトのセル・エディタを返す
      戻り値:
      このcolumnClassに使うデフォルトのセル・エディタ
      関連項目:
    • setDragEnabled

      @BeanProperty(bound=false, description="determines whether automatic drag handling is enabled") public void setDragEnabled(boolean b)
      自動ドラッグ処理をオンまたはオフにします。 自動ドラッグ処理を有効にするには、このプロパティの値をtrueに設定し、テーブルのTransferHandlerの値をnon-nullにしてください。 dragEnabledプロパティのデフォルト値はfalseです。

      このプロパティを受け入れ、ユーザーのドラッグ・ジェスチャを認識する処理は、ルック・アンド・フィール実装(特にテーブルのTableUI)によって行われます。 自動ドラッグ処理が有効である場合、ほとんどのルック・アンド・フィール (BasicLookAndFeelのサブクラスのルック・アンド・フィールを含む)は、ユーザーが項目(単一選択モード)または選択内容(その他の選択モード)の上でマウス・ボタンを押し、マウスを数ピクセル移動すると、ドラッグ・アンド・ドロップ操作を開始します。 したがって、このプロパティをtrueに設定すると、選択の動作に微妙に影響する場合があります。

      このプロパティを無視するようなルック・アンド・フィールを使用している場合も、テーブルのTransferHandler上でexportAsDragを呼び出すことにより、ドラッグ・アンド・ドロップ操作を開始できます。

      パラメータ:
      b - 自動ドラッグ処理を有効にするかどうか
      例外:
      HeadlessException - btrueで、GraphicsEnvironment.isHeadless()trueを返す場合
      導入されたバージョン:
      1.4
      関連項目:
    • getDragEnabled

      public boolean getDragEnabled()
      自動ドラッグ処理が有効であるかどうかを返します。
      戻り値:
      dragEnabledプロパティの値
      導入されたバージョン:
      1.4
      関連項目:
    • setDropMode

      public final void setDropMode(DropMode dropMode)
      このコンポーネントのドロップ・モードを設定します。 下位互換性を確保するため、このプロパティのデフォルト値はDropMode.USE_SELECTIONになっています。 ただし、ユーザー側の操作を改善する場合は、ほかのモードを使用することをお勧めします。 たとえばDropMode.ONは、テーブル内の実際の選択内容に影響を及ぼすことなく、選択されたように項目を表示する動作と似た動作を提供します。

      JTableは次のドロップ・モードをサポートしています。

      • DropMode.USE_SELECTION
      • DropMode.ON
      • DropMode.INSERT
      • DropMode.INSERT_ROWS
      • DropMode.INSERT_COLS
      • DropMode.ON_OR_INSERT
      • DropMode.ON_OR_INSERT_ROWS
      • DropMode.ON_OR_INSERT_COLS

      このコンポーネントがドロップを受け付けるTransferHandlerを持っていなければ、ドロップ・モードの効果はありません。

      パラメータ:
      dropMode - 使用するドロップ・モード
      例外:
      IllegalArgumentException - ドロップ・モードがサポートされていないかnullの場合
      導入されたバージョン:
      1.6
      関連項目:
    • getDropMode

      public final DropMode getDropMode()
      このコンポーネントのドロップ・モードを返します。
      戻り値:
      このコンポーネントのドロップ・モード
      導入されたバージョン:
      1.6
      関連項目:
    • getDropLocation

      @BeanProperty(bound=false) public final JTable.DropLocation getDropLocation()
      このコンポーネントがコンポーネントのドラッグ・アンド・ドロップ時にドロップ位置として視覚的に示す位置を返します。現在位置が表示されていない場合はnullを返します。

      このメソッドは、TransferHandlerからドロップ位置を照会する手段にはなりません。ドロップ位置は、TransferHandlercanImportが返され、ドロップ位置を表示する準備ができてから設定されるためです。

      このプロパティが変更されると、コンポーネントにより、プロパティ変更イベントdropLocationがトリガーされます。

      戻り値:
      ドロップ位置
      導入されたバージョン:
      1.6
      関連項目:
    • setAutoCreateRowSorter

      @BeanProperty(preferred=true, description="Whether or not to turn on sorting by default.") public void setAutoCreateRowSorter(boolean autoCreateRowSorter)
      モデルが変更されるたびにテーブルのRowSorterを作成するかどうかを指定します。

      setAutoCreateRowSorter(true)が呼び出されると、ただちに TableRowSorterが作成され、テーブルにインストールされます。 autoCreateRowSorterプロパティの値がtrueの場合、モデルが変更されるたびに新しい TableRowSorterが作成され、テーブルの行ソーターとして設定されます。 autoCreateRowSorterプロパティのデフォルト値はfalseです。

      パラメータ:
      autoCreateRowSorter - RowSorterが自動的に作成されるかどうか
      導入されたバージョン:
      1.6
      関連項目:
    • getAutoCreateRowSorter

      public boolean getAutoCreateRowSorter()
      モデルが変更されるたびに新しいRowSorterを作成し、テーブルのソーターとしてインストールする場合はtrue、それ以外の場合はfalseを返します。
      戻り値:
      モデルが変更されるたびにRowSorterが作成される場合はtrue
      導入されたバージョン:
      1.6
    • setUpdateSelectionOnSort

      @BeanProperty(expert=true, description="Whether or not to update the selection on sorting") public void setUpdateSelectionOnSort(boolean update)
      ソート後、選択内容を更新するかどうかを指定します。 trueの場合、ソート時に選択内容がリセットされ、そのモデルの同じ行が選択された状態になります。 デフォルトは、trueです。
      パラメータ:
      update - ソート時に選択内容を更新するかどうか
      導入されたバージョン:
      1.6
    • getUpdateSelectionOnSort

      public boolean getUpdateSelectionOnSort()
      ソート後、選択内容を更新する場合はtrueを返します。
      戻り値:
      ソート時に選択内容を更新するかどうか
      導入されたバージョン:
      1.6
    • setRowSorter

      @BeanProperty(description="The table\'s RowSorter") public void setRowSorter(RowSorter<? extends TableModel> sorter)
      RowSorterを設定します。 RowSorterは、JTableにソートおよびフィルタ・リング機能を提供するために使用されます。

      このメソッドは、クリアし、可変の行の高さをすべてリセットします。

      このメソッドは、適切な場合にプロパティ名"rowSorter"PropertyChangeEventをトリガーします。 下位互換性のために、このメソッドは追加イベントをプロパティ名"sorter"でトリガーします。

      RowSorterの配下のモデルがこのJTableの配下のモデルと一致しない場合の動作は保証されません。

      パラメータ:
      sorter - RowSorternullの場合、ソートは無効
      導入されたバージョン:
      1.6
      関連項目:
    • getRowSorter

      public RowSorter<? extends TableModel> getRowSorter()
      ソート処理を行うオブジェクトを返します。
      戻り値:
      ソート処理を行うオブジェクト
      導入されたバージョン:
      1.6
    • setSelectionMode

      @BeanProperty(enumerationValues={"ListSelectionModel.SINGLE_SELECTION","ListSelectionModel.SINGLE_INTERVAL_SELECTION","ListSelectionModel.MULTIPLE_INTERVAL_SELECTION"}, description="The selection mode used by the row and column selection models.") public void setSelectionMode(int selectionMode)
      テーブルの選択モードを設定すると、単一項目選択、連続区間の選択、または連続区間の複数選択を可能にできます。

      ノート: JTableは、列と行の選択を処理するすべてのメソッドを提供します。 setSelectionModeなどの状態を設定する際、行選択モデルのモードを更新するだけでなく、columnModelの選択モデルで同様の値を設定します。 行および列の選択モデルを別々のモードで機能させるには、それらを両方とも直接設定します。

      JTableの行選択モデルと列選択モデルはどちらともデフォルトでDefaultListSelectionModelを使用するので、JTableJListと同じように動作します。 モードの詳細は、JListsetSelectionModeを参照してください。

      パラメータ:
      selectionMode - 行選択モデルと列選択モデルで使用されるモード
      関連項目:
    • setRowSelectionAllowed

      @BeanProperty(visualUpdate=true, description="If true, an entire row is selected for each selected cell.") public void setRowSelectionAllowed(boolean rowSelectionAllowed)
      このモデルの行を選択できるかどうかを設定します。
      パラメータ:
      rowSelectionAllowed - このモデルが行選択を許可する場合はtrue
      関連項目:
    • getRowSelectionAllowed

      public boolean getRowSelectionAllowed()
      行を選択できる場合にtrueを返します。
      戻り値:
      行を選択可能な場合はtrue、そうでない場合はfalse
      関連項目:
    • setColumnSelectionAllowed

      @BeanProperty(visualUpdate=true, description="If true, an entire column is selected for each selected cell.") public void setColumnSelectionAllowed(boolean columnSelectionAllowed)
      このモデルの列を選択できるかどうかを設定します。
      パラメータ:
      columnSelectionAllowed - このモデルが列選択を許可する場合はtrue
      関連項目:
    • getColumnSelectionAllowed

      public boolean getColumnSelectionAllowed()
      列が選択できる場合はtrueを返します。
      戻り値:
      列を選択可能な場合はtrue、そうでない場合はfalse
      関連項目:
    • setCellSelectionEnabled

      @BeanProperty(visualUpdate=true, description="Select a rectangular region of cells rather than rows or columns.") public void setCellSelectionEnabled(boolean cellSelectionEnabled)
      列選択と行選択の同時実行をこのテーブルが許可するかどうかを設定します。 設定されると、テーブルは行選択モデルと列選択モデルの交差する部分を、選択されたセルとして処理します。 このデフォルトの動作を変更するには、isCellSelectedをオーバーライドします。 このメソッドは、columnModelrowSelectionAllowedプロパティおよびcolumnSelectionAllowedプロパティを指定された値に設定するのと同じことです。
      パラメータ:
      cellSelectionEnabled - 行と列の同時選択を許可する場合はtrue
      関連項目:
    • getCellSelectionEnabled

      public boolean getCellSelectionEnabled()
      行選択モデルと列選択モデルの両方が可能な場合はtrueを返します。 getRowSelectionAllowed() && getColumnSelectionAllowed()と同等です。
      戻り値:
      行選択モデルと列選択モデルの両方が可能な場合はtrue
      関連項目:
    • selectAll

      public void selectAll()
      テーブルのすべての行、列、およびセルを選択します。
    • clearSelection

      public void clearSelection()
      選択されているすべての列および行を選択解除します。
    • setRowSelectionInterval

      public void setRowSelectionInterval(int index0, int index1)
      index0からindex1までの行(上下限値を含む)を選択します。
      パラメータ:
      index0 - 範囲の一方の端の値
      index1 - 範囲の他方の端の値
      例外:
      IllegalArgumentException - index0またはindex1が[0, getRowCount()-1]の範囲外の場合
    • setColumnSelectionInterval

      public void setColumnSelectionInterval(int index0, int index1)
      index0からindex1までの列(上下限値を含む)を選択します。
      パラメータ:
      index0 - 範囲の一方の端の値
      index1 - 範囲の他方の端の値
      例外:
      IllegalArgumentException - index0またはindex1が[0, getColumnCount()-1]の範囲外の場合
    • addRowSelectionInterval

      public void addRowSelectionInterval(int index0, int index1)
      index0からindex1までの行(上下限値を含む)を現在の選択領域に追加します。
      パラメータ:
      index0 - 範囲の一方の端の値
      index1 - 範囲の他方の端の値
      例外:
      IllegalArgumentException - index0またはindex1が[0, getRowCount()-1]の範囲外の場合
    • addColumnSelectionInterval

      public void addColumnSelectionInterval(int index0, int index1)
      index0からindex1までの列(上下限値を含む)を現在の選択領域に追加します。
      パラメータ:
      index0 - 範囲の一方の端の値
      index1 - 範囲の他方の端の値
      例外:
      IllegalArgumentException - index0またはindex1が[0, getColumnCount()-1]の範囲外の場合
    • removeRowSelectionInterval

      public void removeRowSelectionInterval(int index0, int index1)
      index0からindex1までの行(上下限値を含む)の選択を解除します。
      パラメータ:
      index0 - 範囲の一方の端の値
      index1 - 範囲の他方の端の値
      例外:
      IllegalArgumentException - index0またはindex1が[0, getRowCount()-1]の範囲外の場合
    • removeColumnSelectionInterval

      public void removeColumnSelectionInterval(int index0, int index1)
      index0からindex1までの列(上下限値を含む)の選択を解除します。
      パラメータ:
      index0 - 範囲の一方の端の値
      index1 - 範囲の他方の端の値
      例外:
      IllegalArgumentException - index0またはindex1が[0, getColumnCount()-1]の範囲外の場合
    • getSelectedRow

      @BeanProperty(bound=false) public int getSelectedRow()
      最初に選択された行のインデックスを返すか、行が選択されていない場合は -1を返します。
      戻り値:
      最初に選択された行のインデックス
    • getSelectedColumn

      @BeanProperty(bound=false) public int getSelectedColumn()
      最初に選択された列のインデックスを返すか、列が選択されていない場合は -1を返します。
      戻り値:
      最初に選択された列のインデックス
    • getSelectedRows

      @BeanProperty(bound=false) public int[] getSelectedRows()
      選択されたすべての行のインデックスを返します。
      戻り値:
      選択されたすべての行のインデックスを格納する整数の配列。行が選択されていない場合は空の配列
      関連項目:
    • getSelectedColumns

      @BeanProperty(bound=false) public int[] getSelectedColumns()
      選択されたすべての列のインデックスを返します。
      戻り値:
      選択されたすべての列のインデックスを格納する整数の配列。列が選択されていない場合は空の配列
      関連項目:
    • getSelectedRowCount

      @BeanProperty(bound=false) public int getSelectedRowCount()
      選択された行数を返します。
      戻り値:
      選択された行の数。選択されている行がない場合は0
    • getSelectedColumnCount

      @BeanProperty(bound=false) public int getSelectedColumnCount()
      選択されている列の数を返します。
      戻り値:
      選択された列の数。選択されている列がない場合は0
    • isRowSelected

      public boolean isRowSelected(int row)
      指定されたインデックスが有効な行の範囲内にあり、そのインデックスで示される行が選択されている場合はtrueを返します。
      パラメータ:
      row - 行モデルの行
      戻り値:
      rowが有効なインデックスであり、そのインデックスで示される行が選択されている場合はtrue (0は最初の行)
    • isColumnSelected

      public boolean isColumnSelected(int column)
      指定されたインデックスが有効な列の範囲内にあり、そのインデックスで示される列が選択されている場合はtrueを返します。
      パラメータ:
      column - 列モデルの列
      戻り値:
      columnが有効なインデックスであり、そのインデックスで示される列が選択されている場合はtrue (0は最初の列)
    • isCellSelected

      public boolean isCellSelected(int row, int column)
      指定されたインデックスが有効な行および列の範囲内にあり、指定された位置にあるセルが選択されている場合はtrueを返します。
      パラメータ:
      row - 照会される行
      column - 照会される列
      戻り値:
      rowcolumnが有効なインデックスであり、インデックス(row, column)位置のセルが選択されている場合はtrue。この場合、最初の行と最初の列はインデックス0で示される
    • changeSelection

      public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
      toggleextendの2つのフラグの状態によって、テーブルの選択モデルを更新します。 UIが受け取ったキーボード・イベントまたはマウス・イベントによって行われた選択範囲の変更はこのメソッドによって処理され、サブクラスが動作をオーバーライドできるようになります。 UIには、不連続な選択範囲の先頭を操作する場合など、このメソッドが提供するよりも高度な機能を必要とするものもあり、一部の選択範囲の変更ではそのようなUIがこのメソッドに呼び込まれないことがあります。

      実装は次の規則を使用します。

      • toggle: falseextend: false 既存の選択をクリアし、新しいセルが確実に選択されるようにする。
      • toggle: falseextend: true 既存の選択をアンカーから指定のセルまで拡張して、ほかのすべての選択をクリアする。
      • toggle: trueextend: false 指定されたセルが選択されている場合、そのセルを選択解除する。 選択されていない場合、そのセルを選択する。
      • toggle: trueextend: true アンカーの選択状態を、そのアンカーと指定されたセル間のすべてのセルに適用する。

      パラメータ:
      rowIndex - rowの選択に影響する
      columnIndex - columnの選択に影響する
      toggle - 上記参照
      extend - trueの場合、現在の選択を拡張する
      導入されたバージョン:
      1.3
    • getSelectionForeground

      public Color getSelectionForeground()
      選択されているセルのフォアグラウンド・カラーを返します。
      戻り値:
      フォアグラウンド・プロパティのColorオブジェクト
      関連項目:
    • setSelectionForeground

      @BeanProperty(description="A default foreground color for selected cells.") public void setSelectionForeground(Color selectionForeground)
      選択されたセルのフォアグラウンド・カラーを設定します。 セル・レンダリングはこの色を使用して、選択されたセルのテキストとグラフィックスをレンダリングします。

      このプロパティのデフォルト値は、ルック・アンド・フィールの実装によって定義されます。

      これはJavaBeansバウンド・プロパティです。

      パラメータ:
      selectionForeground - 選択されたリスト項目のフォアグラウンドで使用するColor
      関連項目:
    • getSelectionBackground

      public Color getSelectionBackground()
      選択されたセルのバックグラウンド・カラーを返します。
      戻り値:
      選択されたリスト項目のバックグラウンドで使うColor
      関連項目:
    • setSelectionBackground

      @BeanProperty(description="A default background color for selected cells.") public void setSelectionBackground(Color selectionBackground)
      選択されたセルのバックグラウンド・カラーを設定します。 セル・レンダリングはこの色を使用して、選択されたセルを塗りつぶすことができます。

      このプロパティのデフォルト値は、ルック・アンド・フィールの実装によって定義されます。

      これはJavaBeansバウンド・プロパティです。

      パラメータ:
      selectionBackground - 選択されたセルのバックグラウンドで使用するColor
      関連項目:
    • getColumn

      public TableColumn getColumn(Object identifier)
      equalsを使って比較した場合に識別子がidentifierに等しい、テーブル内の列のTableColumnオブジェクトを返します。
      パラメータ:
      identifier - 識別子オブジェクト
      戻り値:
      識別子が一致するTableColumnオブジェクト
      例外:
      IllegalArgumentException - identifiernullの場合、またはこのidentifierを持っているTableColumnがない場合
    • convertColumnIndexToModel

      public int convertColumnIndexToModel(int viewColumnIndex)
      viewColumnIndexのビュー内の列のインデックスを、テーブル・モデル内の列のインデックスにマッピングします。 モデル内の対応する列のインデックスを返します。 viewColumnIndexがゼロより小さい場合は、viewColumnIndexを返します。
      パラメータ:
      viewColumnIndex - ビュー内の列のインデックス
      戻り値:
      モデル内の対応する列のインデックス
      関連項目:
    • convertColumnIndexToView

      public int convertColumnIndexToView(int modelColumnIndex)
      modelColumnIndexのテーブル・モデル内の列のインデックスを、ビュー内の列のインデックスにマッピングします。 ビュー内の対応する列のインデックスを返します。この列が表示されていない場合は-1を返します。 modelColumnIndexがゼロより小さい場合は、modelColumnIndexを返します。
      パラメータ:
      modelColumnIndex - モデル内の列のインデックス
      戻り値:
      ビュー内の対応する列のインデックス
      関連項目:
    • convertRowIndexToView

      public int convertRowIndexToView(int modelRowIndex)
      TableModelの行のインデックスをビューにマッピングします。 モデルのインデックスとビューのインデックスが同じである場合、モデルの内容はソートされません。
      パラメータ:
      modelRowIndex - モデルの行のインデックス
      戻り値:
      ビュー内の対応する行のインデックス、行が可視でない場合は -1
      例外:
      IndexOutOfBoundsException - ソート機能が有効で、TableModelの行数より値の大きいインデックスが渡された場合
      導入されたバージョン:
      1.6
      関連項目:
    • convertRowIndexToModel

      public int convertRowIndexToModel(int viewRowIndex)
      ビューの行のインデックスをベースとなるTableModelにマッピングします。 モデルのインデックスとビューのインデックスが同じである場合、モデルの内容はソートされません。
      パラメータ:
      viewRowIndex - ビュー内の行のインデックス
      戻り値:
      モデル内の対応する行のインデックス
      例外:
      IndexOutOfBoundsException - ソート機能が有効で、getRowCountメソッドの決定に従ってJTableの範囲より値の大きいインデックスが渡された場合
      導入されたバージョン:
      1.6
      関連項目:
    • getRowCount

      @BeanProperty(bound=false) public int getRowCount()
      スペースに制限がない場合、JTableに表示できる行数を返します。 フィルタとともにRowSorterが指定された場合は、返される行数が配下のTableModelによって返される行数と異なる可能性があります。
      戻り値:
      JTableに表示される行数
      関連項目:
    • getColumnCount

      @BeanProperty(bound=false) public int getColumnCount()
      列モデル内の列数を返します。 ただし、これはテーブル・モデル内の列数とは異なる場合があります。
      戻り値:
      テーブル内の列数
      関連項目:
    • getColumnName

      public String getColumnName(int column)
      ビューの列位置columnに表示される列の名前を返します。
      パラメータ:
      column - 照会されるビューの列
      戻り値:
      ビュー内のcolumn位置の列名(最初の列は列0)
    • getColumnClass

      public Class<?> getColumnClass(int column)
      ビューの列位置columnに表示される列の型を返します。
      パラメータ:
      column - 照会されるビューの列
      戻り値:
      ビュー内のcolumnにある列の種類(最初の列は列0)
    • getValueAt

      public Object getValueAt(int row, int column)
      rowcolumnに位置するセル値を返します。

      ノート: 列はテーブル・ビューの表示順で指定され、TableModelの列順では指定されません。 ユーザーがテーブル内の列を配列し直すとビュー内の指定されたインデックスの列が変更されるため、これは重要な相違になります。 一方、ユーザーのアクションはモデルの列順序付けに影響を及ぼしません。

      パラメータ:
      row - 値が照会される行
      column - 値が照会される列
      戻り値:
      指定されたセルのObject
    • setValueAt

      public void setValueAt(Object aValue, int row, int column)
      テーブル・モデル内のrowcolumnに位置するセルの値を設定します。

      ノート: 列はテーブル・ビューの表示順で指定され、TableModelの列順では指定されません。 ユーザーがテーブル内の列を配列し直すとビュー内の指定されたインデックスの列が変更されるため、これは重要な相違になります。 一方、ユーザーのアクションはモデルの列順序付けに影響を及ぼしません。aValueは新しい値です。

      パラメータ:
      aValue - 新しい値
      row - 変更されるセルの行
      column - 変更されるセルの列
      関連項目:
    • isCellEditable

      public boolean isCellEditable(int row, int column)
      rowおよびcolumnに位置するセルが編集可能な場合にtrueを返します。 そうでない場合は、セルのsetValueAtを呼び出しても影響しません。

      ノート: 列はテーブル・ビューの表示順で指定され、TableModelの列順では指定されません。 ユーザーがテーブル内の列を配列し直すとビュー内の指定されたインデックスの列が変更されるため、これは重要な相違になります。 一方、ユーザーのアクションはモデルの列順序付けに影響を及ぼしません。

      パラメータ:
      row - 値が照会される行
      column - 値が照会される列
      戻り値:
      セルが編集可能な場合はtrue
      関連項目:
    • addColumn

      public void addColumn(TableColumn aColumn)
      このJTableの列モデルが保持する列の配列の末尾にaColumnを追加します。 aColumnの列名がnullの場合、aColumnの列名をgetModel().getColumnName()の返す名前に設定します。

      このJTableに列を追加して、指定されたwidthcellRenderer、およびcellEditorを使ってモデル内のmodelColumn番目の列のデータを表示するために、次を使用できます。

      
            addColumn(new TableColumn(modelColumn, width, cellRenderer, cellEditor));
      
        
      (TableColumnコンストラクタをどれでもかわりに使用できます。)モデル列番号はTableColumn内部に格納され、レンダリング時と編集時にモデル内の適切なデータ値を見つけるために使用されます。 モデル列番号は、列をビュー内で並べ替えても変更されません。

      パラメータ:
      aColumn - 追加されるTableColumn
      関連項目:
    • removeColumn

      public void removeColumn(TableColumn aColumn)
      このJTableの列配列からaColumnを削除します。 ノート: このメソッドによって、モデルから列のデータが削除されることはありません。列のデータの表示を行っていたTableColumnのみが削除されます。
      パラメータ:
      aColumn - 削除するTableColumn
      関連項目:
    • moveColumn

      public void moveColumn(int column, int targetColumn)
      columnの列を、ビュー内のtargetColumnの列が現在占める位置に移動します。 targetColumnの従来の列は空きを作るために左または右にシフトされます。
      パラメータ:
      column - 移動する列のインデックス
      targetColumn - 列の新しいインデックス
    • columnAtPoint

      public int columnAtPoint(Point point)
      pointがある列のインデックスを返します。もし、その結果が[0, getColumnCount()-1]の範囲内にない場合は -1を返します。
      パラメータ:
      point - 対象の位置
      戻り値:
      pointがある列のインデックスを返します。もし、その結果が[0, getColumnCount()-1]の範囲内にない場合は -1
      関連項目:
    • rowAtPoint

      public int rowAtPoint(Point point)
      pointがある行のインデックスを返します。もし、その結果が[0, getRowCount()-1]の範囲内にない場合は -1を返します。
      パラメータ:
      point - 対象の位置
      戻り値:
      pointがある行のインデックスを返します。もし、その結果が[0, getRowCount()-1]の範囲内にない場合は -1
      関連項目:
    • getCellRect

      public Rectangle getCellRect(int row, int column, boolean includeSpacing)
      rowcolumnが交差する位置のセルの矩形を返します。 includeSpacingがtrueの場合、返される値は指定された行と列の全高さと全幅を含みます。 falseの場合、返される矩形はセルの間隔によってイン・セットされ、レンダリングの際設定されるレンダリング・コンポーネントまたは編集コンポーネントの真の境界が返されます。

      列インデックスが有効で行インデックスがゼロより小さい場合、メソッドは、y値とheight値が適切に設定され、x値とwidth値がともにゼロに設定された矩形を返します。 一般に、行と列のどちらかのインデックスが適切な範囲外のセルを示す場合、メソッドはテーブルの範囲内でもっとも近いセルのもっとも近い縁を描く矩形を返します。 行と列のインデックスがどちらも範囲外の場合、返される矩形はもっとも近いセルのもっとも近い点を表しています。

      どのケースでも、このメソッドを使用して1つの軸に合わせて結果を求める計算は、他方の軸では変則的な計算を行うので、失敗することはありません。 セルが有効でない場合、includeSpacingパラメータは無視されます。

      パラメータ:
      row - 目的のセルが置かれている行インデックス
      column - 画面内で目的のセルが置かれている列インデックス。この値は、テーブルのデータ・モデル内の列インデックスと同じであるとはかぎらない。データ・モデルの列インデックスを画面の列インデックスに変換する場合は、convertColumnIndexToView(int)メソッドを使用できる
      includeSpacing - falseの場合、真のセルの境界を返す。この境界は、列モデルと行モデルの高さと幅からセルの間隔を引くことによって計算される
      戻り値:
      rowcolumnの位置のセルを保持する矩形
      関連項目:
    • doLayout

      public void doLayout()
      このテーブルに行と列をレイアウトさせます。 格納する親のサイズの変更にあわせて列をサイズ変更できるように、オーバーライドされます。 このJTableの列全部の合計幅がテーブル幅に等しくなるように、テーブル内の1つまたは複数の列のサイズを変更します。

      配置が開始される前に、メソッドはtableHeaderresizingColumnを取得します。 囲み側ウィンドウのサイズ変更の結果として、メソッドが呼び出される場合は、resizingColumnnullになります。 これは、サイズ変更がJTableの「外側」で起きたこと、および変更(デルタ)がこのJTableの自動サイズ変更モードに関係なくすべての列に反映されることを意味します。

      resizingColumnnullでない場合は、テーブル・サイズの変更ではなく、テーブル内のある列のサイズが変更されたことを示します。 この場合、自動サイズ変更モードにより、余分な、または足りないスペースが利用可能なすべての列で配分される方法が決定されます。

      次のモードが有効です。

      • AUTO_RESIZE_OFF -列の幅を自動調整しない。 列の合計がViewportの幅を超える場合は、水平スクロールバーを使用してそれらの列に対応する。 JTableJScrollPaneに囲まれていない場合、テーブルの一部を不可視のままにすることがある。
      • AUTO_RESIZE_NEXT_COLUMN -サイズが変更された列の直後の列を使用する。 この場合、隣接するセルの間の「境界」つまりディバイダを単独で調整できる。
      • AUTO_RESIZE_SUBSEQUENT_COLUMNS -調整中の列の後ろのすべての列を使用して、変更を吸収する。 これはデフォルトの動作です。
      • AUTO_RESIZE_LAST_COLUMN -最後の列のサイズだけを自動調整する。 最終列の境界のために望ましいサイズの割当てができない場合は、最終列の幅を適切な限度に設定してそれ以上の調整は行わない。
      • AUTO_RESIZE_ALL_COLUMNS -調整中の列を含めたJTable内のすべての列にデルタを分散させる。

      ノート: JTableが列幅を調整するときは、最小値と最大値が無条件に考慮されます。 このため、このメソッドを呼び出した後でも、列の合計幅が表の幅に等しくない場合があります。 この場合、JTableはそれ自体がAUTO_RESIZE_OFFモードに入ってスクロールバーを呼び出したり、現在の自動サイズ変更モードによるその他の機能を中断させたりすることはありません。そのかわり、境界を各列の最小または最大の合計よりも大きく、または小さく設定できるようにします。つまり、すべての列を表示する余裕がないか、列がJTableの境界に足りないかのどちらかを意味します。 この結果、前者は一部の列のクリッピングを実行し、後者はペイント時にJTableのバックグラウンド・カラーで領域をペイントすることになります。

      有効な列の間でデルタを分散させるメカニズムは、JTableクラスのprivateメソッドで提供されます。

         adjustSizes(long targetSize, final Resizable3 r, boolean inverse)
       
      このメソッドについては次のセクションで説明します。 Resizable3はprivateインタフェースであり、このインタフェースによって、サイズ、適切なサイズ、最大サイズ、および最小サイズを持つ要素の集合を格納するすべてのデータ構造がアルゴリズムによってその要素を操作できるようになります。

      デルタの分散

      概要

      ターゲット・サイズと、r内の要素の推奨サイズの合計との差を「DELTA」と呼びます。 個々のサイズは、元の推奨サイズにDELTAの割当て分を足して算出します。割当て分は、各推奨サイズとその制限境界(最小値または最大値)との間の距離に基づいて決まります。

      定義

      各定数をmin[i]、max[i]、およびpref[i]とします。

      それぞれの合計をMIN、MAX、およびPREFとします。

      新しいサイズの計算方法は次のとおりです。

                size[i] = pref[i] + delta[i]
       
      delta[i]の計算方法は次のとおりです。

      (DELTA < 0)の場合は、次のような縮小モードになります。

                              DELTA
                delta[i] = ------------ * (pref[i] - min[i])
                           (PREF - MIN)
       
      (DELTA> 0)の場合は、次のような拡大モードになります。
                              DELTA
                delta[i] = ------------ * (max[i] - pref[i])
                            (MAX - PREF)
       

      全体として、合計サイズは同じ割合kで合計最小値または合計最大値に近づき、その割合が必要なスペースDELTAに対応することを保証します。

      詳細

      ここで提示した公式の単純な評価は、有限精度(intを使用)でこの処理をすることによって生じる四捨五入誤差の影響を受けます。 これに対応するために、前述の乗率が繰返し計算され、そのときに前回の四捨五入誤差が考慮されます。 その結果、指定されたすべての要素で均等に四捨五入誤差を分散することによって、値の合計が正確にtargetSizeになる一連の整数を生成するアルゴリズムとなります。

      MAX境界およびMIN境界に達した場合

      targetSizeが[MIN, MAX]の範囲外の場合、このアルゴリズムによってすべてのサイズがそれぞれの適切な最大値または最小値の制限値に設定されます。

      オーバーライド:
      doLayout、クラスContainer
      関連項目:
    • sizeColumnsToFit

      @Deprecated public void sizeColumnsToFit(boolean lastColumnOnly)
      非推奨。
      Swing version 1.0.3以降は、doLayout()に置き換えられています。
      利用可能なスペースに合わせてテーブルの列のサイズを変更します。
      パラメータ:
      lastColumnOnly - 最後の列のみのサイズを変更するかどうかを決定
      関連項目:
    • sizeColumnsToFit

      public void sizeColumnsToFit(int resizingColumn)
      Java 2プラットフォームv1.4では使用しません。 代わりにdoLayout()メソッドを使用してください。
      パラメータ:
      resizingColumn - サイズ変更でこの調整を必要とする列。当てはまる列がない場合は -1
      関連項目:
    • getToolTipText

      public String getToolTipText(MouseEvent event)
      JComponentgetToolTipTextメソッドをオーバーライドして、テキスト・セットがある場合にレンダリングのヒントを使用できるようにします。

      ノート: JTableがレンダラのツールヒントを適切に表示できるようにするには、JTableToolTipManagerに登録済のコンポーネントである必要があります。 これはinitializeLocalVarsで自動的に行われますが、あとでJTablesetToolTipText(null)を通知すると、テーブル・コンポーネントを登録解除するので、レンダリングからのヒントはそれ以上表示されません。

      オーバーライド:
      getToolTipText、クラスJComponent
      パラメータ:
      event - ToolTipの表示を開始したMouseEvent
      戻り値:
      ツール・ヒントを含む文字列
      関連項目:
    • setSurrendersFocusOnKeystroke

      public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)
      JTableがセルのキーボード・イベントを転送した結果として、このJTableのエディタがキーボード・フォーカスを取得するかどうかを設定します。 デフォルトでは、このプロパティはfalseです。JTableはセルがクリックされないかぎりフォーカスを保持します。
      パラメータ:
      surrendersFocusOnKeystroke - キー・ストロークによりエディタがアクティブになったとき、エディタがフォーカスを取得する場合はtrue
      導入されたバージョン:
      1.4
      関連項目:
    • getSurrendersFocusOnKeystroke

      public boolean getSurrendersFocusOnKeystroke()
      キーボードがエディタをアクティブ化したときにエディタがフォーカスを取得する場合はtrueを返します。
      戻り値:
      キー・ストロークによりエディタがアクティブになったとき、エディタがフォーカスを取得する場合はtrue
      導入されたバージョン:
      1.4
      関連項目:
    • editCellAt

      public boolean editCellAt(int row, int column)
      rowcolumnに位置するセルのインデックスが有効な範囲内にあり、その位置にあるセルが編集可能な場合は、セルの編集をプログラムによって開始します。 これはeditCellAt(int, int, null)の簡易メソッドです。
      パラメータ:
      row - 編集する行
      column - 編集する列
      戻り値:
      何らかの理由でセルを編集できない場合、またはインデックスが無効な場合はfalse
    • editCellAt

      public boolean editCellAt(int row, int column, EventObject e)
      rowcolumnに位置するセルのインデックスが有効な範囲内にあり、その位置にあるセルが編集可能な場合は、セルの編集をプログラムによって開始します。 JTableが特定のテーブル、列、またはセルの値を編集できないようにするには、TableModelインタフェースのisCellEditableメソッドからfalseを返します。
      パラメータ:
      row - 編集する行
      column - 編集する列
      e - shouldSelectCellに渡されるイベント。Java 2プラットフォームv1.2以降、shouldSelectCellは呼び出されなくなった
      戻り値:
      何らかの理由でセルを編集できない場合、またはインデックスが無効な場合はfalse
    • isEditing

      @BeanProperty(bound=false) public boolean isEditing()
      セルを編集中の場合はtrueを返します。
      戻り値:
      テーブルがセルを編集中の場合はtrue
      関連項目:
    • getEditorComponent

      @BeanProperty(bound=false) public Component getEditorComponent()
      編集セッションを処理しているコンポーネントを返します。 何も編集していない場合はnullを返します。
      戻り値:
      編集セッションを処理するComponent
    • getEditingColumn

      public int getEditingColumn()
      現在編集中のセルを含む列のインデックスを返します。 何も編集していない場合は -1を返します。
      戻り値:
      現在編集中のセルを含む列のインデックス。何も編集していない場合は -1を返す
      関連項目:
    • getEditingRow

      public int getEditingRow()
      現在編集中のセルを含む行のインデックスを返します。 何も編集していない場合は -1を返します。
      戻り値:
      現在編集中のセルを含む行のインデックス。何も編集していない場合は -1を返す
      関連項目:
    • getUI

      public TableUI getUI()
      このコンポーネントをレンダリングするL&Fオブジェクトを返します。
      オーバーライド:
      クラスJComponentgetUI
      戻り値:
      このコンポーネントをレンダリングするTableUIオブジェクト
    • setUI

      @BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(TableUI ui)
      このコンポーネントをレンダリングしてペイントしなおすL&Fオブジェクトを設定します。
      パラメータ:
      ui - TableUI L&Fオブジェクト
      関連項目:
    • updateUI

      public void updateUI()
      L&Fが変更されたことを示す、UIManagerからの通知です。 現在のUIオブジェクトをUIManagerの最新バージョンに置き換えます。
      オーバーライド:
      updateUI、クラスJComponent
      関連項目:
    • getUIClassID

      @BeanProperty(bound=false) public String getUIClassID()
      L&Fクラスの名前の構築に使用された接尾辞を返します。このクラスは、このコンポーネントをレンダリングするのに使用されます。
      オーバーライド:
      getUIClassID、クラスJComponent
      戻り値:
      TableUIの文字列
      関連項目:
    • setModel

      @BeanProperty(description="The model that is the source of the data for this view.") public void setModel(TableModel dataModel)
      この表のデータ・モデルをdataModelに設定し、新しいデータ・モデルからのリスナー通知用に登録します。
      パラメータ:
      dataModel - このテーブルの新しいデータ・ソース
      例外:
      IllegalArgumentException - dataModelnullの場合
      関連項目:
    • getModel

      public TableModel getModel()
      このJTableが表示するデータを提供するTableModelを返します。
      戻り値:
      このJTableが表示するデータを提供するTableModel
      関連項目:
    • setColumnModel

      @BeanProperty(description="The object governing the way columns appear in the view.") public void setColumnModel(TableColumnModel columnModel)
      この表の列モデルをcolumnModelに設定し、新しい列モデルからのリスナー通知を登録します。 また、JTableHeaderの列モデルをcolumnModelに設定します。
      パラメータ:
      columnModel - このテーブルの新しいデータ・ソース
      例外:
      IllegalArgumentException - columnModelnullである場合
      関連項目:
    • getColumnModel

      public TableColumnModel getColumnModel()
      このテーブルのすべての列情報を保持するTableColumnModelを返します。
      戻り値:
      テーブルの列の状態を提供するオブジェクト
      関連項目:
    • setSelectionModel

      @BeanProperty(description="The selection model for rows.") public void setSelectionModel(ListSelectionModel selectionModel)
      この表の行選択モデルをselectionModelに設定し、新しい選択モデルからのリスナー通知を登録します。
      パラメータ:
      selectionModel - 新しい選択モデル
      例外:
      IllegalArgumentException - selectionModelnullである場合
      関連項目:
    • getSelectionModel

      public ListSelectionModel getSelectionModel()
      行選択状態を維持するのに使うListSelectionModelを返します。
      戻り値:
      行の選択状態を提供するオブジェクト。行の選択が許可されていない場合はnull
      関連項目:
    • sorterChanged

      public void sorterChanged(RowSorterEvent e)
      RowSorterが変更されたことを知らせるRowSorterListener通知です。
      定義:
      sorterChanged、インタフェースRowSorterListener
      パラメータ:
      e - 変更を説明するRowSorterEvent
      例外:
      NullPointerException - enullである場合
      導入されたバージョン:
      1.6
    • tableChanged

      public void tableChanged(TableModelEvent e)
      このテーブルのTableModelTableModelEventを生成するときに呼び出されます。 TableModelEventはモデルの座標系で構築され、イベント受信時にJTableがビュー座標系への適切なマッピングを実行します。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      1.3では、このメソッドは、必要に応じて選択状態が解除されます。

      定義:
      tableChanged、インタフェースTableModelListener
      パラメータ:
      e - リスナーに表モデルが変更されたことを通知するTableModelEvent
    • columnAdded

      public void columnAdded(TableColumnModelEvent e)
      テーブル列モデルに列が追加されるときに呼び出されます。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      定義:
      columnAdded、インタフェースTableColumnModelListener
      パラメータ:
      e - TableColumnModelEvent
      関連項目:
    • columnRemoved

      public void columnRemoved(TableColumnModelEvent e)
      列がテーブル列モデルから削除されるときに呼び出されます。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      定義:
      columnRemoved、インタフェースTableColumnModelListener
      パラメータ:
      e - TableColumnModelEvent
      関連項目:
    • columnMoved

      public void columnMoved(TableColumnModelEvent e)
      列が再配置されると呼び出されます。 セルが編集中の場合、編集は停止しセルが再度描画されます。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      定義:
      columnMoved、インタフェースTableColumnModelListener
      パラメータ:
      e - 受け取ったイベント
      関連項目:
    • columnMarginChanged

      public void columnMarginChanged(ChangeEvent e)
      マージンの変更のために列が移動されるときに呼び出されます。 セルが編集中の場合、編集は停止しセルが再度描画されます。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      定義:
      columnMarginChanged、インタフェースTableColumnModelListener
      パラメータ:
      e - 受け取ったイベント
      関連項目:
    • columnSelectionChanged

      public void columnSelectionChanged(ListSelectionEvent e)
      TableColumnModelの選択モデルが変更されるときに呼び出されます。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      定義:
      columnSelectionChanged、インタフェースTableColumnModelListener
      パラメータ:
      e - 受け取ったイベント
      関連項目:
    • valueChanged

      public void valueChanged(ListSelectionEvent e)
      行の選択領域が変更されたときに呼び出され、ペイントし直して新しい選択領域を示します。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      定義:
      valueChanged、インタフェースListSelectionListener
      パラメータ:
      e - 受け取ったイベント
      関連項目:
    • editingStopped

      public void editingStopped(ChangeEvent e)
      編集が完了したときに呼び出されます。 変更は保存され、エディタは破棄されます。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      定義:
      editingStopped、インタフェースCellEditorListener
      パラメータ:
      e - 受け取ったイベント
      関連項目:
    • editingCanceled

      public void editingCanceled(ChangeEvent e)
      編集が取り消されると呼び出されます。 エディタ・オブジェクトが破棄され、セルがもう一度レンダリングされます。

      アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。

      定義:
      editingCanceled、インタフェースCellEditorListener
      パラメータ:
      e - 受け取ったイベント
      関連項目:
    • setPreferredScrollableViewportSize

      @BeanProperty(bound=false, description="The preferred size of the viewport.") public void setPreferredScrollableViewportSize(Dimension size)
      このテーブルのビュー・ポートの適切なサイズを設定します。
      パラメータ:
      size - ビューがこのテーブルであるJViewportpreferredSizeを指定するDimensionオブジェクト
      関連項目:
    • getPreferredScrollableViewportSize

      public Dimension getPreferredScrollableViewportSize()
      このテーブルのビュー・ポートの適切なサイズを返します。
      定義:
      getPreferredScrollableViewportSize、インタフェースScrollable
      戻り値:
      このテーブルを表示するJViewportpreferredSizeを保持するDimensionオブジェクト
      関連項目:
    • getScrollableUnitIncrement

      public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
      新しい1行または1列を完全に表示するスクロール増分値を(方向に基づいて)ピクセル単位で返します。

      このメソッドは、ユーザーが単位スクロールを要求するたびに呼び出されます。

      定義:
      getScrollableUnitIncrement、インタフェースScrollable
      パラメータ:
      visibleRect - ビュー・ポート内の可視のビュー領域
      orientation - SwingConstants.VERTICALまたはSwingConstants.HORIZONTAL
      direction - 上または左にスクロールする場合は0より小さく、下または右にスクロールする場合は0より大きい
      戻り値:
      指定された方向にスクロールするための「ユニット」増分値
      関連項目:
    • getScrollableBlockIncrement

      public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
      このテーブルの方向によってvisibleRect.heightまたはvisibleRect.widthを返します。 Swing 1.1.1 (Java 2 v 1.2.2)からは、返される値によってビュー・ポイントが行の境界に明確に配置されるようになりました。
      定義:
      getScrollableBlockIncrement、インタフェースScrollable
      パラメータ:
      visibleRect - ビュー・ポート内の可視のビュー領域
      orientation - SwingConstants.VERTICALまたはSwingConstants.HORIZONTAL。
      direction - 上または左にスクロールする場合は0より小さく、下または右にスクロールする場合は0より大きい。
      戻り値:
      方向によって、visibleRect.heightまたはvisibleRect.width
      関連項目:
    • getScrollableTracksViewportWidth

      @BeanProperty(bound=false) public boolean getScrollableTracksViewportWidth()
      autoResizeModeAUTO_RESIZE_OFFに設定されている場合はfalseを返します。これはビュー・ポートの幅がテーブルの幅を決定しないことを示します。 それ以外の場合はtrueを返します。
      定義:
      getScrollableTracksViewportWidth、インタフェースScrollable
      戻り値:
      autoResizeModeAUTO_RESIZE_OFFに設定されている場合はfalse、そうでない場合はtrue
      関連項目:
    • getScrollableTracksViewportHeight

      @BeanProperty(bound=false) public boolean getScrollableTracksViewportHeight()
      getFillsViewportHeighttrueで、テーブルの適切な高さがビュー・ポートの高さより低い場合を除き、falseを返して、ビュー・ポートの高さがテーブルの高さを決めないことを示します。
      定義:
      getScrollableTracksViewportHeight、インタフェースScrollable
      戻り値:
      getFillsViewportHeighttrueで、テーブルをビュー・ポートのサイズに引き伸ばす必要がある場合を除きfalse
      関連項目:
    • setFillsViewportHeight

      @BeanProperty(description="Whether or not this table is always made large enough to fill the height of an enclosing viewport") public void setFillsViewportHeight(boolean fillsViewportHeight)
      このテーブルを常に囲み側のビュー・ポートの高さに合わせて大きくするかどうかを設定します。 テーブルの適切な高さがビュー・ポートの高さより低い場合、テーブルはビュー・ポートのサイズに引き伸ばされます。 このようにして、テーブルがビュー・ポートより小さくならないようにします。 このプロパティのデフォルトはfalseです。
      パラメータ:
      fillsViewportHeight - このテーブルを常に囲み側のビュー・ポートの高さに合わせて大きくするかどうか
      導入されたバージョン:
      1.6
      関連項目:
    • getFillsViewportHeight

      public boolean getFillsViewportHeight()
      このテーブルを常に囲み側のビュー・ポートの高さに合わせて大きくするかどうかを返します。
      戻り値:
      このテーブルを常に囲み側のビュー・ポートの高さに合わせて大きくするかどうか
      導入されたバージョン:
      1.6
      関連項目:
    • createDefaultRenderers

      protected void createDefaultRenderers()
      オブジェクト、数、double値、日付、boolean値、およびアイコンのデフォルトのセル・レンダリングを作成します。
      関連項目:
    • createDefaultEditors

      protected void createDefaultEditors()
      オブジェクト、数、およびboolean値のデフォルトのセル・エディタを作成します。
      関連項目:
    • initializeLocalVars

      protected void initializeLocalVars()
      各テーブル・プロパティをデフォルト値に初期化します。
    • createDefaultDataModel

      protected TableModel createDefaultDataModel()
      DefaultTableModelであるデフォルトのテーブル・モデル・オブジェクトを返します。 サブクラスはこのメソッドをオーバーライドして、異なるテーブル・モデル・オブジェクトを返すことができます。
      戻り値:
      デフォルトのテーブル・モデル・オブジェクト
      関連項目:
    • createDefaultColumnModel

      protected TableColumnModel createDefaultColumnModel()
      DefaultTableColumnModelであるデフォルトの列モデル・オブジェクトを返します。 サブクラスはこのメソッドをオーバーライドして、異なる列モデル・オブジェクトを返すことができます。
      戻り値:
      デフォルトの列モデル・オブジェクト
      関連項目:
    • createDefaultSelectionModel

      protected ListSelectionModel createDefaultSelectionModel()
      DefaultListSelectionModelであるデフォルトの選択モデル・オブジェクトを返します。 サブクラスはこのメソッドをオーバーライドして、異なる選択モデル・オブジェクトを返すことができます。
      戻り値:
      デフォルトの選択モデル・オブジェクト
      関連項目:
    • createDefaultTableHeader

      protected JTableHeader createDefaultTableHeader()
      JTableHeaderであるデフォルトのテーブル・ヘッダー・オブジェクトを返します。 サブクラスはこのメソッドをオーバーライドして、異なるテーブル・ヘッダー・オブジェクトを返すことができます。
      戻り値:
      デフォルトのテーブル・ヘッダー・オブジェクト
      関連項目:
    • resizeAndRepaint

      protected void resizeAndRepaint()
      revalidateの後にrepaintを呼び出すのと同等です。
    • getCellEditor

      public TableCellEditor getCellEditor()
      アクティブなセル・エディタ(テーブルが現在編集中でない場合はnull)を返します。
      戻り値:
      編集を行うTableCellEditor。テーブルが現在編集中でない場合はnull
      関連項目:
    • setCellEditor

      @BeanProperty(description="The table\'s active cell editor.") public void setCellEditor(TableCellEditor anEditor)
      アクティブなセル・エディタを設定します。
      パラメータ:
      anEditor - アクティブなセル・エディタ
      関連項目:
    • setEditingColumn

      public void setEditingColumn(int aColumn)
      editingColumn変数を設定します。
      パラメータ:
      aColumn - 編集されるセルの列
      関連項目:
    • setEditingRow

      public void setEditingRow(int aRow)
      editingRow変数を設定します。
      パラメータ:
      aRow - 編集されるセルの行
      関連項目:
    • getCellRenderer

      public TableCellRenderer getCellRenderer(int row, int column)
      この行と列で指定するセルの適切なレンダリングを返します。 この列のTableColumnがnull以外のレンダリングを持つ場合は、そのレンダリングを返します。 そうでない場合は、getColumnClassを使用してこの列のデータのクラスを見つけて、この型のデータのデフォルト・レンダリングを返します。

      ノート: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してレンダリングを提供し、デフォルトの動作をサブクラスが安全にオーバーライドできるようにします。

      パラメータ:
      row - レンダリングするセルの行。0は最初の行
      column - レンダリングするセルの列。0は最初の列
      戻り値:
      割り当てられたレンダリング。nullの場合、この型のオブジェクトのデフォルトのレンダリングを返す
      関連項目:
    • prepareRenderer

      public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
      rowcolumnの位置にあるセルの値および選択状態をデータ・モデルに照会して、レンダラを準備します。 イベントの位置にあるコンポーネント(ComponentまたはJComponent)を返します。

      出力操作の間、このメソッドは、選択またはフォーカスを指定することなくレンダリングを設定して、これらを出力対象から除外します。 テーブルを出力するかどうかに基づいてその他のカスタマイズを行う場合は、この位置またはカスタム・レンダリング内のJComponent.isPaintingForPrint()の値を確認できます。

      ノート: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してレンダリングを準備し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。

      パラメータ:
      renderer - 準備するTableCellRenderer
      row - レンダリングするセルの行。0は最初の行
      column - レンダリングするセルの列。0は最初の列
      戻り値:
      イベントの位置にあるComponent
    • getCellEditor

      public TableCellEditor getCellEditor(int row, int column)
      rowcolumnによって指定されるセルの適切なエディタを返します。 この列のTableColumnがnull以外のエディタを持つ場合は、そのエディタを返します。 そうでない場合は、getColumnClassを使用してこの列のデータのクラスを見つけて、この型のデータのデフォルト・エディタを返します。

      ノート: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してエディタを提供し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。

      パラメータ:
      row - 編集するセルの行。0は最初の行
      column - 編集するセルの列。0は最初の列
      戻り値:
      このセルのエディタ。nullの場合、この型のセルのデフォルトのエディタを返す
      関連項目:
    • prepareEditor

      public Component prepareEditor(TableCellEditor editor, int row, int column)
      rowcolumnの位置にあるセルの値および選択状態をデータ・モデルに照会して、エディタを準備します。

      ノート: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してエディタを準備し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。

      パラメータ:
      editor - 設定するTableCellEditor
      row - 編集するセルの行。0は最初の行
      column - 編集するセルの列。0は最初の列
      戻り値:
      編集中のComponent
    • removeEditor

      public void removeEditor()
      エディタ・オブジェクトを破棄して、そのオブジェクトがセル・レンダリングに使った場所を解放します。
    • paramString

      protected String paramString()
      このテーブルの文字列表現を返します。 このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なる可能性があります。 返される文字列は空でもかまいませんが、nullにはできません。
      オーバーライド:
      paramString、クラスJComponent
      戻り値:
      このテーブルの文字列表現
    • print

      public boolean print() throws PrinterException
      印刷ダイアログを表示し、このJTableを、PrintMode.FIT_WIDTHモードで、ヘッダー・テキストまたはフッター・テキストを指定せずに印刷する簡易メソッドです。 出力中は、中止オプション付きのモーダルな進捗ダイアログが表示されます。

      ノート: ヘッドレス・モードでは、ダイアログは表示されず、デフォルトのプリンタを使って出力が行われます。

      戻り値:
      ユーザーが出力を取り消さないかぎりtrue
      例外:
      SecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合
      PrinterException - 出力システムのエラーが原因でジョブが停止した場合
      導入されたバージョン:
      1.5
      関連項目:
    • print

      public boolean print(JTable.PrintMode printMode) throws PrinterException
      印刷ダイアログを表示し、このJTableを、指定された印刷モードで、ヘッダー・テキストまたはフッター・テキストを指定せずに印刷する簡易メソッドです。 出力中は、中止オプション付きのモーダルな進捗ダイアログが表示されます。

      ノート: ヘッドレス・モードでは、ダイアログは表示されず、デフォルトのプリンタを使って出力が行われます。

      パラメータ:
      printMode - Printableが使用する出力モード
      戻り値:
      ユーザーが出力を取り消さないかぎりtrue
      例外:
      SecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合
      PrinterException - 出力システムのエラーが原因でジョブが停止した場合
      導入されたバージョン:
      1.5
      関連項目:
    • print

      public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException
      印刷ダイアログを表示し、このJTableを、指定された印刷モードで、ヘッダー・テキストまたはフッター・テキストを指定して印刷する簡易メソッドです。 出力中は、中止オプション付きのモーダルな進捗ダイアログが表示されます。

      ノート: ヘッドレス・モードでは、ダイアログは表示されず、デフォルトのプリンタを使って出力が行われます。

      パラメータ:
      printMode - Printableが使用する出力モード
      headerFormat - ヘッダーの出力に使用されるテキストを示すMessageFormat。ヘッダーがない場合はnull
      footerFormat - フッターの出力に使用されるテキストを示すMessageFormat。フッターがない場合はnull
      戻り値:
      ユーザーが出力を取り消さないかぎりtrue
      例外:
      SecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合
      PrinterException - 出力システムのエラーが原因でジョブが停止した場合
      導入されたバージョン:
      1.5
      関連項目:
    • print

      public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive) throws PrinterException, HeadlessException
      完全指定のprintメソッドで指定されているとおりに、印刷サービスとして指定されたデフォルト・プリンタを使って、この表を印刷します。
      パラメータ:
      printMode - Printableが使用する出力モード
      headerFormat - ヘッダーの出力に使用されるテキストを示すMessageFormat。ヘッダーがない場合はnull
      footerFormat - フッターの出力に使用されるテキストを示すMessageFormat。フッターがない場合はnull
      showPrintDialog - 出力ダイアログを表示するかどうか
      attr - 出力属性を示すPrintRequestAttributeSet。出力属性がない場合はnull
      interactive - 対話型モードで出力するかどうか
      戻り値:
      ユーザーが出力を取り消さないかぎりtrue
      例外:
      HeadlessException - メソッドが出力ダイアログを表示するか、対話型で実行するように求められ、GraphicsEnvironment.isHeadlesstrueを返した場合
      SecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合
      PrinterException - 出力システムのエラーが原因でジョブが停止した場合
      導入されたバージョン:
      1.5
      関連項目:
    • print

      public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive, PrintService service) throws PrinterException, HeadlessException
      このJTableを印刷します。 ほとんどの開発者がJTableの出力に使用するステップを実行します。 手短に言えば、テーブルを準備し、getPrintableを呼び出して適切なPrintableを取出し、それをプリンタに送ります。

      booleanパラメータを使用すると、出力ダイアログがユーザーに表示されるかどうかを指定できます。 出力ダイアログが表示される場合、ユーザーはこのダイアログを使用して出力先のプリンタや出力属性を変更したり、出力を取り消したりできます。 ほかの2つのパラメータでは、PrintServiceと出力属性を指定できます。 これらのパラメータは、出力ダイアログの初期値を指定したり、ダイアログが表示されないときに値を指定するために使用できます。

      2番目のbooleanパラメータを使用すると、対話型モードで出力を実行するかどうかを指定できます。 trueの場合は、出力中に中止オプションの付いたモーダルな進捗ダイアログが表示されます。 このダイアログでは、テーブルに影響を及ぼすユーザー・アクションを防止することもできます。 ただし、テーブルがコード(SwingUtilities.invokeLaterを使用して更新内容を送る別のスレッドなど)によって変更されないようにすることはできません。 このため、開発者は出力中にテーブルがほかのコードによって決して変更されないようにする必要があります(不正な変更には、サイズ、レンダリング、ベースとなるデータの変更がある)。 出力中にテーブルが変更されると、出力動作は保証されません。

      このパラメータをfalseに指定すると、ダイアログは表示されず、イベント・ディスパッチ・スレッドで即座に出力が開始されます。 これによって、出力が完了するまでほかのすべてのイベント(再ペイントなど)の処理が中断されます。 これは、テーブルが変更されないようにするには効果的ですが、ユーザー側の手順がありません。 この理由から、表示できるGUIのないアプリケーションから出力するときにのみfalseを指定することをお勧めします。

      ノート: ヘッドレス・モードで出力ダイアログを表示するか、対話型で実行しようとすると、HeadlessExceptionがスローされます。

      このメソッドは、Printableを取得する前に、必要に応じてエディタを終了し、出力結果にエディタを表示しないようにします。 また、JTableは、出力中に選択とフォーカスが指定されないようにレンダリングを準備します。 テーブルの出力結果をさらにカスタマイズする場合、開発者は、JComponent.isPaintingForPrint()の値に条件を設定するカスタム・レンダリングまたはペイント・コードを提供できます。

      テーブルの出力方法の詳細は、getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)を参照してください。

      パラメータ:
      printMode - Printableが使用する出力モード
      headerFormat - ヘッダーの出力に使用されるテキストを示すMessageFormat。ヘッダーがない場合はnull
      footerFormat - フッターの出力に使用されるテキストを示すMessageFormat。フッターがない場合はnull
      showPrintDialog - 出力ダイアログを表示するかどうか
      attr - 出力属性を示すPrintRequestAttributeSet。出力属性がない場合はnull
      interactive - 対話型モードで出力するかどうか
      service - 出力先のPrintService。デフォルトのプリンタを使用する場合はnull
      戻り値:
      ユーザーが出力を取り消さないかぎりtrue
      例外:
      HeadlessException - メソッドが出力ダイアログを表示するか、対話型で実行するように求められ、GraphicsEnvironment.isHeadlesstrueを返した場合
      SecurityException - セキュリティ・マネージャが存在し、セキュリティ・マネージャのSecurityManager.checkPrintJobAccess()メソッドにより、このスレッドでの出力ジョブ要求の作成が禁止されている場合
      PrinterException - 出力システムのエラーが原因でジョブが停止した場合
      導入されたバージョン:
      1.6
      関連項目:
    • getPrintable

      public Printable getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
      このJTableの印刷に使用するPrintableを返します。

      このメソッドは、JTableprintメソッドによって使用されるデフォルトのPrintable実装をカスタマイズする手段として使用します。 テーブルを出力するだけの場合は、これらのメソッドのいずれかを直接使用することをお勧めします。

      Printableは、2つの出力モードのいずれかで要求できます。 どちらのモードでも、1ページあたりの行数をできるだけ多くして、テーブルの行を順に複数ページにわたって自然に分散させます。 PrintMode.NORMALは、テーブルが現在のサイズで出力されることを示します。 このモードでは、行の場合と同様に列も複数ページにわたって分散させる必要があります。 必要に応じて、テーブルのComponentOrientationに見合った順序で列が分散されます。 PrintMode.FIT_WIDTHは、必要に応じて、各ページにテーブルの幅全体(すべての列)が収まるように出力が縮小されることを示します。 幅と高さは均一にスケーリングされ、出力の縦横比が維持されます。

      Printableは、各ページのテーブル部分の先頭にテーブルのJTableHeaderからの適切なセクション(存在する場合)を付けます。

      MessageFormat引数を指定すると、ヘッダー・テキストとフッター・テキストを出力に追加できます。 出力コードは、それらの形式からStringを要求して、書式付き文字列に含まれる単一の項目(現在のページ番号を表すInteger)を提供します。

      一重引用符などの一部の特殊文字にはエスケープが必要となるため、MessageFormatのドキュメントをよくお読みください。

      次に、「Duke's Table: Page - 」と現在のページ番号の出力に使用できるMessageFormatの作成例を示します。

           // notice the escaping of the single quote
           // notice how the page number is included with "{0}"
           MessageFormat format = new MessageFormat("Duke''s Table: Page - {0}");
       

      Printableでは、描画する内容を、出力する各ページの出力可能領域に制限します。 場合によっては、ページのすべての内容がその領域に収まらないことがあります。 この場合は、出力がクリップされることがありますが、実装は何らかの妥当な処理をしようと試みます。 次に、このような状況のいくつかの発生例と、この実装によるそれらの対処方法を示します。

      • すべてのモードで、ヘッダー・テキストまたはフッター・テキストが大きすぎて出力可能領域に完全に収まらない場合 -- テーブルのComponentOrientationによって決められたとおりにテキストの先頭から限度いっぱいまで出力する。
      • すべてのモードで、行が長すぎて出力可能領域に収まらない場合 -- 行の最上部分を出力し、くぼみボーダーはテーブルにペイントしない。
      • PrintMode.NORMALで、列が広すぎて出力可能領域に収まらない場合 -- 列の中央部分を出力し、左および右のボーダーをテーブルから外す。

      複雑なレポートやドキュメントを作成するために、このPrintableを別のPrintable内にラップすることはまったく問題ありません。 また、異なるページがサイズの異なる出力可能領域にレンダリングされるように要求することもできます。 実装は、このような状況に対処できる(おそらく実行中にそのレイアウト計算を行うことにより)ように準備されている必要があります。 ただし、PrintMode.NORMALで複数ページに列を分散させる必要がある場合は、各ページに異なる高さを指定すると、正しく動作しない可能性があります。

      出力結果のテーブルの外観をカスタマイズする場合、出力中の選択およびフォーカスの非表示設定は、JTable自体によって処理されます。 より細かくカスタマイズする場合は、レンダリングまたはペイント・コードを使用し、JComponent.isPaintingForPrint()の値に基づいて外観をカスタマイズできます

      また、このメソッドを呼び出す前にまず表の状態を変更(セル編集の取消し、ユーザーによる適切な表サイズの設定など)できます。 ただし、このPrintableが取得された後は、表の状態を変更しないでください(無効な変更には、サイズの変更や、配下のデータの変更などがあります)。 表に変更を加えた場合、返されるPrintableの動作は保証されません。

      パラメータ:
      printMode - Printableが使用する出力モード
      headerFormat - ヘッダーの出力に使用されるテキストを示すMessageFormat。ヘッダーがない場合はnull
      footerFormat - フッターの出力に使用されるテキストを示すMessageFormat。フッターがない場合はnull
      戻り値:
      このJTableを出力するためのPrintable
      導入されたバージョン:
      1.5
      関連項目:
    • getAccessibleContext

      @BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
      このJTableに関連付けられたAccessibleContextを取得します。 テーブルの場合、AccessibleContextはAccessibleJTableの形式を取ります。 必要に応じて、新規のAccessibleJTableインスタンスが作成されます。
      定義:
      getAccessibleContext、インタフェースAccessible
      オーバーライド:
      getAccessibleContext、クラスComponent
      戻り値:
      このJTableのAccessibleContextとして機能するAccessibleJTable