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 new Integer(row*col); }
};
JTable table = new JTable(dataModel);
JScrollPane scrollpane = new JScrollPane(table);
JTableは通常、JScrollPaneの内部に配置されます。 デフォルトでは、水平スクロール・バーが必要ないようにJTableがその幅を調整します。 水平スクロール・バーを使用できるようにするには、AUTO_RESIZE_OFFでsetAutoResizeMode(int)を呼び出します。 スタンドアロンのビュー(JScrollPaneの外側)内でJTableを使用し、ヘッダーを表示する場合は、getTableHeader()を使用してヘッダーを取得し、個別に表示できます。
行のソートおよびフィルタ・リングを可能にするには、RowSorterを使用します。 行ソーターは、次の2種類の方法で設定できます。
RowSorterを直接設定します。 たとえば、table.setRowSorter(new TableRowSorter(model))です。
autoCreateRowSorterプロパティをtrueに設定し、JTableが自動的にRowSorterを作成するようにします。 たとえば、setAutoCreateRowSorter(true)です。
JTableを使用するアプリケーションを設計する場合、テーブルのデータを表現するデータ構造に十分注意する必要があります。 DefaultTableModelはObjectのVectorsの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クラスに関しては、InputMapとActionMapを使用してActionオブジェクトとKeyStrokeを関連付け、指定した条件でアクションを実行できます。
警告: Swingはスレッドに対して安全ではありません。 詳細は、「Swing's Threading Policy」を参照してください。
警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。
DefaultTableModel, TableRowSorter| 修飾子と型 | クラス | 説明 |
|---|---|---|
protected class |
JTable.AccessibleJTable |
このクラスは
JTableクラスのアクセシビリティ・サポートを実装しています。 |
static class |
JTable.DropLocation |
TransferHandler.DropLocationのサブクラスであり、JTableのドロップ位置を表します。 |
static class |
JTable.PrintMode |
JTableの印刷に使用する印刷モードです。 |
JComponent.AccessibleJComponentContainer.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy| 修飾子と型 | フィールド | 説明 |
|---|---|---|
static int |
AUTO_RESIZE_ALL_COLUMNS |
すべてのサイズ変更操作で、各列を均等にサイズ変更します。
|
static int |
AUTO_RESIZE_LAST_COLUMN |
すべてのサイズ変更操作で、最終列だけに調整を適用します。
|
static int |
AUTO_RESIZE_NEXT_COLUMN |
列をUIで調整するときは、次の列を逆方向に調整します。
|
static int |
AUTO_RESIZE_OFF |
列幅の調整は自動的に行わず、代わりに水平スクロール・バーを使います。
|
static int |
AUTO_RESIZE_SUBSEQUENT_COLUMNS |
UIを調整するときは、それ以降の列を変更して列の合計幅を維持します。これはデフォルトの動作です。
|
protected boolean |
autoCreateColumnsFromModel |
trueの場合、列のデフォルト・セットを構築するために
TableModelを照会します。 |
protected int |
autoResizeMode |
テーブルが幅のサイズを自動変更して各列でテーブル幅全体を占めるようにするかどうかを指定し、そのサイズ変更の方法を指定します。
|
protected TableCellEditor |
cellEditor |
現在のセルが占める画面上の場所を上書きし、ユーザーがその内容を変更できるようにするアクティブなセル・エディタ・オブジェクトです。
|
protected boolean |
cellSelectionEnabled |
Java 2プラットフォームv1.3では使用しません。
|
protected TableColumnModel |
columnModel |
テーブルの
TableColumnModel。 |
protected TableModel |
dataModel |
テーブルの
TableModel。 |
protected Hashtable |
defaultEditorsByColumnClass |
セルの内容を表示および編集するオブジェクトのテーブルです。
TableModelインタフェースのgetColumnClassで宣言されたクラスによるインデックスが付いています。 |
protected Hashtable |
defaultRenderersByColumnClass |
セルの内容を表示するオブジェクトのテーブルです。
TableModelインタフェースのgetColumnClassで宣言されたクラスによるインデックスが付いています。 |
protected int |
editingColumn |
編集中のセルの列を識別します。
|
protected int |
editingRow |
編集中のセルの行を識別します。
|
protected Component |
editorComp |
編集時であれば、編集を処理している
Componentです。 |
protected Color |
gridColor |
グリッドの色です。
|
protected Dimension |
preferredViewportSize |
Scrollableインタフェースによって使われ、初期可視領域を判定します。 |
protected int |
rowHeight |
テーブルの各行の高さをピクセルで表したものです。
|
protected int |
rowMargin |
各行のセル間のマージンの高さをピクセルで表したものです。
|
protected boolean |
rowSelectionAllowed |
このテーブルで行選択が許可されている場合、trueです。
|
protected Color |
selectionBackground |
選択されたセルのバックグラウンド・カラー。
|
protected Color |
selectionForeground |
選択されたセルのフォアグラウンド・カラー。
|
protected ListSelectionModel |
selectionModel |
行選択を追跡するのに使用される、テーブルの
ListSelectionModelです。 |
protected boolean |
showHorizontalLines |
showHorizontalLinesがtrueの場合、テーブルはセル間に水平線を描画します。 |
protected boolean |
showVerticalLines |
showVerticalLinesがtrueの場合、テーブルはセル間に垂直線を描画します。 |
protected JTableHeader |
tableHeader |
テーブルの
TableHeaderです。 |
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| コンストラクタ | 説明 |
|---|---|
JTable() |
デフォルト・データ・モデル、デフォルト列モデル、およびデフォルト選択モデルを使用して初期化される、デフォルトの
JTableを構築します。 |
JTable(int numRows, int numColumns) |
DefaultTableModelを使用して、numRows行とnumColumns列の空のセルを持つJTableを構築します。 |
JTable(Object[][] rowData, Object[] columnNames) |
2次元配列
rowDataの値を列名columnNamesを使って表示するJTableを構築します。 |
JTable(TableModel dm) |
データ・モデル
dm、デフォルト列モデル、およびデフォルト選択モデルを使用して初期化されるJTableを構築します。 |
JTable(TableModel dm, TableColumnModel cm) |
データ・モデル
dm、列モデルcm、およびデフォルト選択モデルを使用して初期化されるJTableを構築します。 |
JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm) |
データ・モデル
dm、列モデルcm、および選択モデルsmを使用して初期化されるJTableを構築します。 |
JTable(Vector rowData, Vector columnNames) |
VectorsのVectorの値を表示するJTable、つまりrowDataを、列名columnNamesで構築します。 |
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
void |
addColumn(TableColumn aColumn) |
この
JTableの列モデルが保持する列の配列の末尾にaColumnを追加します。 |
void |
addColumnSelectionInterval(int index0, int index1) |
index0からindex1までの列(上下限値を含む)を現在の選択領域に追加します。 |
void |
addNotify() |
configureEnclosingScrollPaneメソッドを呼び出します。 |
void |
addRowSelectionInterval(int index0, int index1) |
index0からindex1までの行(上下限値を含む)を現在の選択領域に追加します。 |
void |
changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) |
toggleとextendの2つのフラグの状態によって、テーブルの選択モデルを更新します。 |
void |
clearSelection() |
選択されているすべての列および行を選択解除します。
|
void |
columnAdded(TableColumnModelEvent e) |
テーブル列モデルに列が追加されるときに呼び出されます。
|
int |
columnAtPoint(Point point) |
pointがある列のインデックスを返します。もし、その結果が[0, getColumnCount()-1]の範囲内にない場合は -1を返します。 |
void |
columnMarginChanged(ChangeEvent e) |
マージンの変更のために列が移動されるときに呼び出されます。
|
void |
columnMoved(TableColumnModelEvent e) |
列が再配置されると呼び出されます。
|
void |
columnRemoved(TableColumnModelEvent e) |
列がテーブル列モデルから削除されるときに呼び出されます。
|
void |
columnSelectionChanged(ListSelectionEvent e) |
TableColumnModelの選択モデルが変更されるときに呼び出されます。 |
protected void |
configureEnclosingScrollPane() |
通常はこの
JTableが囲み側JScrollPaneのviewportViewですが、その場合、特にテーブルのtableHeaderをスクロール・ペインのcolumnHeaderViewとしてインストールすることによって、このScrollPaneを設定します。 |
int |
convertColumnIndexToModel(int viewColumnIndex) |
viewColumnIndexのビュー内の列のインデックスを、テーブル・モデル内の列のインデックスにマッピングします。 |
int |
convertColumnIndexToView(int modelColumnIndex) |
modelColumnIndexのテーブル・モデル内の列のインデックスを、ビュー内の列のインデックスにマッピングします。 |
int |
convertRowIndexToModel(int viewRowIndex) |
ビューの行のインデックスをベースとなる
TableModelにマッピングします。 |
int |
convertRowIndexToView(int modelRowIndex) |
TableModelの行のインデックスをビューにマッピングします。 |
protected TableColumnModel |
createDefaultColumnModel() |
DefaultTableColumnModelであるデフォルトの列モデル・オブジェクトを返します。 |
void |
createDefaultColumnsFromModel() |
このメソッドは
TableModelインタフェースに定義されたgetColumnCountメソッドを使って、データ・モデルからテーブルのデフォルトの列を作成します。 |
protected TableModel |
createDefaultDataModel() |
DefaultTableModelであるデフォルトのテーブル・モデル・オブジェクトを返します。 |
protected void |
createDefaultEditors() |
オブジェクト、数、およびboolean値のデフォルトのセル・エディタを作成します。
|
protected void |
createDefaultRenderers() |
オブジェクト、数、double値、日付、boolean値、およびアイコンのデフォルトのセル・レンダリングを作成します。
|
protected ListSelectionModel |
createDefaultSelectionModel() |
DefaultListSelectionModelであるデフォルトの選択モデル・オブジェクトを返します。 |
protected JTableHeader |
createDefaultTableHeader() |
JTableHeaderであるデフォルトのテーブル・ヘッダー・オブジェクトを返します。 |
static JScrollPane |
createScrollPaneForTable(JTable aTable) |
非推奨。
Swing version 1.0.2以降は、
new JScrollPane(aTable)に置き換えられています。 |
void |
doLayout() |
このテーブルに行と列をレイアウトさせます。
|
boolean |
editCellAt(int row, int column) |
row、columnに位置するセルのインデックスが有効な範囲内にあり、その位置にあるセルが編集可能な場合は、セルの編集をプログラムによって開始します。 |
boolean |
editCellAt(int row, int column, EventObject e) |
row、columnに位置するセルのインデックスが有効な範囲内にあり、その位置にあるセルが編集可能な場合は、セルの編集をプログラムによって開始します。 |
void |
editingCanceled(ChangeEvent e) |
編集が取り消されると呼び出されます。
|
void |
editingStopped(ChangeEvent e) |
編集が完了したときに呼び出されます。
|
AccessibleContext |
getAccessibleContext() |
このJTableに関連付けられたAccessibleContextを取得します。
|
boolean |
getAutoCreateColumnsFromModel() |
テーブルがデフォルトの列をモデルから作成するかどうかを指定します。
|
boolean |
getAutoCreateRowSorter() |
モデルが変更されるたびに新しい
RowSorterを作成し、テーブルのソーターとしてインストールする場合はtrue、それ以外の場合はfalseを返します。 |
int |
getAutoResizeMode() |
テーブルの自動サイズ変更モードを返します。
|
TableCellEditor |
getCellEditor() |
アクティブなセル・エディタ(テーブルが現在編集中でない場合は
null)を返します。 |
TableCellEditor |
getCellEditor(int row, int column) |
rowとcolumnによって指定されるセルの適切なエディタを返します。 |
Rectangle |
getCellRect(int row, int column, boolean includeSpacing) |
rowとcolumnが交差する位置のセルの矩形を返します。 |
TableCellRenderer |
getCellRenderer(int row, int column) |
この行と列で指定するセルの適切なレンダリングを返します。
|
boolean |
getCellSelectionEnabled() |
行選択モデルと列選択モデルの両方が可能な場合はtrueを返します。
|
TableColumn |
getColumn(Object identifier) |
equalsを使って比較した場合に識別子がidentifierに等しい、テーブル内の列のTableColumnオブジェクトを返します。 |
Class<?> |
getColumnClass(int column) |
ビューの列位置
columnに表示される列の型を返します。 |
int |
getColumnCount() |
列モデル内の列数を返します。
|
TableColumnModel |
getColumnModel() |
このテーブルのすべての列情報を保持する
TableColumnModelを返します。 |
String |
getColumnName(int column) |
ビューの列位置
columnに表示される列の名前を返します。 |
boolean |
getColumnSelectionAllowed() |
列が選択できる場合はtrueを返します。
|
TableCellEditor |
getDefaultEditor(Class<?> columnClass) |
TableColumnにエディタが設定されていない場合に使用するエディタを返します。 |
TableCellRenderer |
getDefaultRenderer(Class<?> columnClass) |
TableColumnにレンダラが設定されていない場合に使用する、セル・レンダラを返します。 |
boolean |
getDragEnabled() |
自動ドラッグ処理が有効であるかどうかを返します。
|
JTable.DropLocation |
getDropLocation() |
このコンポーネントがコンポーネントのドラッグ・アンド・ドロップ時にドロップ位置として視覚的に示す位置を返します。現在位置が表示されていない場合は
nullを返します。 |
DropMode |
getDropMode() |
このコンポーネントのドロップ・モードを返します。
|
int |
getEditingColumn() |
現在編集中のセルを含む列のインデックスを返します。
|
int |
getEditingRow() |
現在編集中のセルを含む行のインデックスを返します。
|
Component |
getEditorComponent() |
編集セッションを処理しているコンポーネントを返します。
|
boolean |
getFillsViewportHeight() |
このテーブルを常に囲み側のビュー・ポートの高さに合わせて大きくするかどうかを返します。
|
Color |
getGridColor() |
グリッド線の描画に使用する色を返します。
|
Dimension |
getIntercellSpacing() |
セル間の水平間隔と垂直間隔を返します。
|
TableModel |
getModel() |
この
JTableが表示するデータを提供するTableModelを返します。 |
Dimension |
getPreferredScrollableViewportSize() |
このテーブルのビュー・ポートの適切なサイズを返します。
|
Printable |
getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) |
このJTableの出力に使用する
Printableを返します。 |
int |
getRowCount() |
スペースに制限がない場合、
JTableに表示できる行数を返します。 |
int |
getRowHeight() |
テーブル行の高さをピクセルで返します。
|
int |
getRowHeight(int row) |
rowのセルの高さをピクセル単位で返します。 |
int |
getRowMargin() |
セルの間隔をピクセル単位で返します。
|
boolean |
getRowSelectionAllowed() |
行を選択できる場合にtrueを返します。
|
RowSorter<? extends TableModel> |
getRowSorter() |
ソート処理を行うオブジェクトを返します。
|
int |
getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction) |
このテーブルの方向によって
visibleRect.heightまたはvisibleRect.widthを返します。 |
boolean |
getScrollableTracksViewportHeight() |
getFillsViewportHeightがtrueで、テーブルの適切な高さがビュー・ポートの高さより低い場合を除き、falseを返して、ビュー・ポートの高さがテーブルの高さを決めないことを示します。 |
boolean |
getScrollableTracksViewportWidth() |
autoResizeModeがAUTO_RESIZE_OFFに設定されている場合はfalseを返します。これはビュー・ポートの幅がテーブルの幅を決定しないことを示します。 |
int |
getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction) |
新しい1行または1列を完全に表示するスクロール増分値を(方向に基づいて)ピクセル単位で返します。
|
int |
getSelectedColumn() |
最初に選択された列のインデックスを返すか、列が選択されていない場合は -1を返します。
|
int |
getSelectedColumnCount() |
選択されている列の数を返します。
|
int[] |
getSelectedColumns() |
選択されたすべての列のインデックスを返します。
|
int |
getSelectedRow() |
最初に選択された行のインデックスを返すか、行が選択されていない場合は -1を返します。
|
int |
getSelectedRowCount() |
選択された行数を返します。
|
int[] |
getSelectedRows() |
選択されたすべての行のインデックスを返します。
|
Color |
getSelectionBackground() |
選択されたセルのバックグラウンド・カラーを返します。
|
Color |
getSelectionForeground() |
選択されているセルのフォアグラウンド・カラーを返します。
|
ListSelectionModel |
getSelectionModel() |
行選択状態を維持するのに使う
ListSelectionModelを返します。 |
boolean |
getShowHorizontalLines() |
テーブルがセル間に水平線を描画する場合はtrue、描画しない場合はfalseを返します。
|
boolean |
getShowVerticalLines() |
テーブルがセル間に垂直線を描画する場合はtrue、描画しない場合はfalseを返します。
|
boolean |
getSurrendersFocusOnKeystroke() |
キーボードがエディタをアクティブ化したときにエディタがフォーカスを取得する場合はtrueを返します。
|
JTableHeader |
getTableHeader() |
この
JTableによって使用されるtableHeaderを返します。 |
String |
getToolTipText(MouseEvent event) |
JComponentのgetToolTipTextメソッドをオーバーライドして、テキスト・セットがある場合にレンダリングのヒントを使用できるようにします。 |
TableUI |
getUI() |
このコンポーネントを描画するL&Fオブジェクトを返します。
|
String |
getUIClassID() |
L&Fクラスの名前の構築に使用された接尾辞を返します。このクラスは、このコンポーネントをレンダリングするのに使用されます。
|
boolean |
getUpdateSelectionOnSort() |
ソート後、選択内容を更新する場合はtrueを返します。
|
Object |
getValueAt(int row, int column) |
row、columnに位置するセル値を返します。 |
protected void |
initializeLocalVars() |
各テーブル・プロパティをデフォルト値に初期化します。
|
boolean |
isCellEditable(int row, int column) |
rowおよびcolumnに位置するセルが編集可能な場合にtrueを返します。 |
boolean |
isCellSelected(int row, int column) |
指定されたインデックスが有効な行および列の範囲内にあり、指定された位置にあるセルが選択されている場合はtrueを返します。
|
boolean |
isColumnSelected(int column) |
指定されたインデックスが有効な列の範囲内にあり、そのインデックスで示される列が選択されている場合はtrueを返します。
|
boolean |
isEditing() |
セルを編集中の場合はtrueを返します。
|
boolean |
isRowSelected(int row) |
指定されたインデックスが有効な行の範囲内にあり、そのインデックスで示される行が選択されている場合はtrueを返します。
|
void |
moveColumn(int column, int targetColumn) |
columnの列を、ビュー内のtargetColumnの列が現在占める位置に移動します。 |
protected String |
paramString() |
このテーブルの文字列表現を返します。
|
Component |
prepareEditor(TableCellEditor editor, int row, int column) |
row、columnの位置にあるセルの値および選択状態をデータ・モデルに照会して、エディタを準備します。 |
Component |
prepareRenderer(TableCellRenderer renderer, int row, int column) |
row、columnの位置にあるセルの値および選択状態をデータ・モデルに照会して、レンダラを準備します。 |
boolean |
print() |
印刷ダイアログを表示し、この
JTableを、PrintMode.FIT_WIDTHモードで、ヘッダー・テキストまたはフッター・テキストを指定せずに印刷する簡易メソッドです。 |
boolean |
print(JTable.PrintMode printMode) |
出力ダイアログを表示し、この
JTableを、指定された出力モードで、ヘッダー・テキストまたはフッター・テキストを指定せずに出力する簡易メソッドです。 |
boolean |
print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) |
出力ダイアログを表示し、この
JTableを、指定された出力モードで、ヘッダー・テキストまたはフッター・テキストを指定して出力する簡易メソッドです。 |
boolean |
print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive) |
完全指定の
printメソッドで指定されているとおりに、印刷サービスとして指定されたデフォルト・プリンタを使って、このテーブルを印刷します。 |
boolean |
print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive, PrintService service) |
この
JTableを印刷します。 |
protected boolean |
processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) |
KeyEvent eの結果としてksのキー・バインドを処理するために呼び出されます。 |
void |
removeColumn(TableColumn aColumn) |
この
JTableの列配列からaColumnを削除します。 |
void |
removeColumnSelectionInterval(int index0, int index1) |
index0からindex1までの列(上下限値を含む)の選択を解除します。 |
void |
removeEditor() |
エディタ・オブジェクトを破棄して、そのオブジェクトがセル・レンダリングに使った場所を解放します。
|
void |
removeNotify() |
unconfigureEnclosingScrollPaneメソッドを呼び出します。 |
void |
removeRowSelectionInterval(int index0, int index1) |
index0からindex1までの行(上下限値を含む)の選択を解除します。 |
protected void |
resizeAndRepaint() |
revalidateの後にrepaintを呼び出すのと同等です。 |
int |
rowAtPoint(Point point) |
pointがある行のインデックスを返します。もし、その結果が[0, getRowCount()-1]の範囲内にない場合は -1を返します。 |
void |
selectAll() |
テーブルのすべての行、列、およびセルを選択します。
|
void |
setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel) |
このテーブルの
autoCreateColumnsFromModelフラグを設定します。 |
void |
setAutoCreateRowSorter(boolean autoCreateRowSorter) |
モデルが変更されるたびにテーブルの
RowSorterを作成するかどうかを指定します。 |
void |
setAutoResizeMode(int mode) |
テーブルのサイズ変更時にテーブルの自動サイズ変更モードを設定します。
|
void |
setCellEditor(TableCellEditor anEditor) |
アクティブなセル・エディタを設定します。
|
void |
setCellSelectionEnabled(boolean cellSelectionEnabled) |
列選択と行選択の同時実行をこのテーブルが許可するかどうかを設定します。
|
void |
setColumnModel(TableColumnModel columnModel) |
このテーブルの列モデルを
newModelに設定し、新しい列モデルからのリスナー通知を登録します。 |
void |
setColumnSelectionAllowed(boolean columnSelectionAllowed) |
このモデルの列を選択できるかどうかを設定します。
|
void |
setColumnSelectionInterval(int index0, int index1) |
index0からindex1までの列(上下限値を含む)を選択します。 |
void |
setDefaultEditor(Class<?> columnClass, TableCellEditor editor) |
TableColumnにエディタが設定されていない場合に使用する、デフォルトのセル・エディタを設定します。 |
void |
setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer) |
TableColumnにレンダラが設定されていない場合に使用する、デフォルトのセル・レンダラを設定します。 |
void |
setDragEnabled(boolean b) |
自動ドラッグ処理をオンまたはオフにします。
|
void |
setDropMode(DropMode dropMode) |
このコンポーネントのドロップ・モードを設定します。
|
void |
setEditingColumn(int aColumn) |
editingColumn変数を設定します。 |
void |
setEditingRow(int aRow) |
editingRow変数を設定します。 |
void |
setFillsViewportHeight(boolean fillsViewportHeight) |
このテーブルを常に囲み側のビュー・ポートの高さに合わせて大きくするかどうかを設定します。
|
void |
setGridColor(Color gridColor) |
グリッド線の描画に使用する色を
gridColorに設定し、再表示します。 |
void |
setIntercellSpacing(Dimension intercellSpacing) |
rowMarginとcolumnMargin、つまりセル間のスペースの高さと幅を、intercellSpacingに設定します。 |
void |
setModel(TableModel dataModel) |
このテーブルのデータ・モデルを
newModelに設定し、それに新しいデータ・モデルからのリスナー通知を登録します。 |
void |
setPreferredScrollableViewportSize(Dimension size) |
このテーブルのビュー・ポートの適切なサイズを設定します。
|
void |
setRowHeight(int rowHeight) |
すべてのセルの高さをピクセル単位で
rowHeightに設定し、再検証してペイントし直します。 |
void |
setRowHeight(int row, int rowHeight) |
rowの高さをrowHeightに設定し、再検証してペイントし直します。 |
void |
setRowMargin(int rowMargin) |
隣接する行のセルの間隔を設定します。
|
void |
setRowSelectionAllowed(boolean rowSelectionAllowed) |
このモデルの行を選択できるかどうかを設定します。
|
void |
setRowSelectionInterval(int index0, int index1) |
index0からindex1までの行(上下限値を含む)を選択します。 |
void |
setRowSorter(RowSorter<? extends TableModel> sorter) |
RowSorterを設定します。 |
void |
setSelectionBackground(Color selectionBackground) |
選択されたセルのバックグラウンド・カラーを設定します。
|
void |
setSelectionForeground(Color selectionForeground) |
選択されたセルのフォアグラウンド・カラーを設定します。
|
void |
setSelectionMode(int selectionMode) |
テーブルの選択モードを設定すると、単一項目選択、連続区間の選択、または連続区間の複数選択を可能にできます。
|
void |
setSelectionModel(ListSelectionModel newModel) |
このテーブルの行選択モデルを
newModelに設定し、新しい選択モデルからのリスナー通知を登録します。 |
void |
setShowGrid(boolean showGrid) |
テーブルがセルの周囲にグリッド線を描画するかどうかを設定します。
|
void |
setShowHorizontalLines(boolean showHorizontalLines) |
テーブルがセル間に水平線を描画するかどうかを設定します。
|
void |
setShowVerticalLines(boolean showVerticalLines) |
テーブルがセル間に垂直線を描画するかどうかを設定します。
|
void |
setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke) |
JTableがセルのキーボード・イベントを転送した結果として、このJTableのエディタがキーボード・フォーカスを取得するかどうかを設定します。
|
void |
setTableHeader(JTableHeader tableHeader) |
この
JTableのtableHeaderをnewHeaderに設定します。 |
void |
setUI(TableUI ui) |
このコンポーネントをレンダリングしてペイントしなおすL&Fオブジェクトを設定します。
|
void |
setUpdateSelectionOnSort(boolean update) |
ソート後、選択内容を更新するかどうかを指定します。
|
void |
setValueAt(Object aValue, int row, int column) |
テーブル・モデル内の
row、columnに位置するセルの値を設定します。 |
void |
sizeColumnsToFit(boolean lastColumnOnly) |
非推奨。
Swing version 1.0.3以降は、
doLayout()に置き換えられています。 |
void |
sizeColumnsToFit(int resizingColumn) |
Java 2プラットフォームv1.4では使用しません。
|
void |
sorterChanged(RowSorterEvent e) |
RowSorterが変更されたことを知らせるRowSorterListener通知です。 |
void |
tableChanged(TableModelEvent e) |
このテーブルの
TableModelがTableModelEventを生成するときに呼び出されます。 |
protected void |
unconfigureEnclosingScrollPane() |
囲み側のスクロール・ペインの
columnHeaderViewをnullに置き換えることによって、configureEnclosingScrollPaneの効果を取り消します。 |
void |
updateUI() |
L&Fが変更されたことを示す、
UIManagerからの通知です。 |
void |
valueChanged(ListSelectionEvent e) |
行の選択領域が変更されたときに呼び出され、ペイントし直して新しい選択領域を示します。
|
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic static final int AUTO_RESIZE_OFF
public static final int AUTO_RESIZE_NEXT_COLUMN
public static final int AUTO_RESIZE_SUBSEQUENT_COLUMNS
public static final int AUTO_RESIZE_LAST_COLUMN
public static final int AUTO_RESIZE_ALL_COLUMNS
protected TableModel dataModel
TableModel。protected TableColumnModel columnModel
TableColumnModel。protected ListSelectionModel selectionModel
ListSelectionModelです。protected JTableHeader tableHeader
TableHeaderです。protected int rowHeight
protected int rowMargin
protected Color gridColor
protected boolean showHorizontalLines
showHorizontalLinesがtrueの場合、テーブルはセル間に水平線を描画します。protected boolean showVerticalLines
showVerticalLinesがtrueの場合、テーブルはセル間に垂直線を描画します。protected int autoResizeMode
protected boolean autoCreateColumnsFromModel
TableModelを照会します。protected Dimension preferredViewportSize
Scrollableインタフェースによって使われ、初期可視領域を判定します。protected boolean rowSelectionAllowed
protected boolean cellSelectionEnabled
columnModelのrowSelectionAllowedプロパティおよびcolumnSelectionAllowedプロパティを使用してください。 またはgetCellSelectionEnabledメソッドを使用してください。 protected transient Component editorComp
Componentです。protected transient TableCellEditor cellEditor
nullになります。protected transient int editingColumn
protected transient int editingRow
protected transient Hashtable defaultRenderersByColumnClass
TableModelインタフェースのgetColumnClassで宣言されたクラスによるインデックスが付いています。protected transient Hashtable defaultEditorsByColumnClass
TableModelインタフェースのgetColumnClassで宣言されたクラスによるインデックスが付いています。protected Color selectionForeground
protected Color selectionBackground
public JTable()
JTableを構築します。public JTable(TableModel dm)
dm、デフォルト列モデル、およびデフォルト選択モデルを使用して初期化されるJTableを構築します。dm - テーブルのデータ・モデルcreateDefaultColumnModel(), createDefaultSelectionModel()public JTable(TableModel dm, TableColumnModel cm)
dm、列モデルcm、およびデフォルト選択モデルを使用して初期化されるJTableを構築します。dm - テーブルのデータ・モデルcm - テーブルの列モデルcreateDefaultSelectionModel()public JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
dm、列モデルcm、および選択モデルsmを使用して初期化されるJTableを構築します。 パラメータのいずれかがnullの場合、このメソッドは対応するデフォルト・モデルでテーブルを初期化します。 autoCreateColumnsFromModelフラグはcmがnull以外の場合はfalseに、そうでない場合はtrueに設定され、列モデルにはdm内の列に適したTableColumnsが入ります。 dm - テーブルのデータ・モデルcm - テーブルの列モデルsm - テーブルの行選択モデルcreateDefaultDataModel(), createDefaultColumnModel(), createDefaultSelectionModel()public JTable(int numRows,
int numColumns)
DefaultTableModelを使用して、numRows行とnumColumns列の空のセルを持つJTableを構築します。 列は、「A」、「B」、「C」といった形式の名前を持ちます。 numRows - テーブルが保持する行数numColumns - テーブルが保持する列数DefaultTableModelpublic JTable(Vector rowData, Vector columnNames)
VectorsのVectorの値を表示するJTable、つまりrowDataを、列名columnNamesで構築します。 rowDataに格納されたVectorsは、その行の値を保持する必要があります。 つまり、行1、列5に位置するセルの値は次のコードで取得できます。
((Vector)rowData.elementAt(1)).elementAt(5);
rowData - 新しいテーブルのデータcolumnNames - 各列の名前public void addNotify()
configureEnclosingScrollPaneメソッドを呼び出します。addNotify、クラスJComponentconfigureEnclosingScrollPane()protected void configureEnclosingScrollPane()
JTableが囲み側JScrollPaneのviewportViewですが、その場合、特にテーブルのtableHeaderをスクロール・ペインのcolumnHeaderViewとしてインストールすることによって、このScrollPaneを設定します。 new JScrollPane(myTable)を使用して通常の方法でJTableをJScrollPaneに追加すると、JTableで(表がビューポートに追加されるときに)addNotifyが呼び出されます。 次に、JTableのaddNotifyメソッドがこのメソッドを呼び出します。このメソッドは、サブクラスがこのデフォルトのインストール・プロシージャをオーバーライドできるように保護されています。 addNotify()public void removeNotify()
unconfigureEnclosingScrollPaneメソッドを呼び出します。removeNotify、クラスJComponentunconfigureEnclosingScrollPane()protected void unconfigureEnclosingScrollPane()
columnHeaderViewをnullに置き換えることによって、configureEnclosingScrollPaneの効果を取り消します。 JTableのremoveNotifyメソッドがこのメソッドを呼び出します。このメソッドは、サブクラスがこのデフォルトのアンインストール・プロシージャをオーバーライドできるように保護されています。 removeNotify(), configureEnclosingScrollPane()@Deprecated public static JScrollPane createScrollPaneForTable(JTable aTable)
new JScrollPane(aTable)に置き換えられています。 new JScrollPane(aTable)と同等です。public void setTableHeader(JTableHeader tableHeader)
JTableのtableHeaderをnewHeaderに設定します。 nullのtableHeaderは有効です。 tableHeader - 新しいtableHeadergetTableHeader()public JTableHeader getTableHeader()
JTableによって使用されるtableHeaderを返します。tableHeadersetTableHeader(javax.swing.table.JTableHeader)public void setRowHeight(int rowHeight)
rowHeightに設定し、再検証してペイントし直します。 セルの高さは、行の高さから行マージンを引いた値になります。 rowHeight - 新しい行の高さIllegalArgumentException - rowHeightが1より小さい場合getRowHeight()public int getRowHeight()
setRowHeight(int)public void setRowHeight(int row,
int rowHeight)
rowの高さをrowHeightに設定し、再検証してペイントし直します。 この行のセルの高さは、行の高さから行マージンを引いたものです。 row - 高さが変更される行rowHeight - ピクセル単位での新しい行の高さIllegalArgumentException - rowHeightが1より小さい場合public int getRowHeight(int row)
rowのセルの高さをピクセル単位で返します。row - 高さが返される行public void setRowMargin(int rowMargin)
rowMargin - 行のセル間のピクセル数getRowMargin()public int getRowMargin()
getIntercellSpacing().heightと同等です。 setRowMargin(int)public void setIntercellSpacing(Dimension intercellSpacing)
rowMarginとcolumnMargin、つまりセル間のスペースの高さと幅を、intercellSpacingに設定します。intercellSpacing - セル間の新しい幅と高さを指定するDimensiongetIntercellSpacing()public Dimension getIntercellSpacing()
setIntercellSpacing(java.awt.Dimension)public void setGridColor(Color gridColor)
gridColorに設定し、再表示します。 デフォルトの色はルック・アンド・フィールに依存します。 gridColor - グリッド線の新しい色IllegalArgumentException - gridColorがnullである場合getGridColor()public Color getGridColor()
setGridColor(java.awt.Color)public void setShowGrid(boolean showGrid)
showGridがtrueの場合は描画し、falseの場合は描画しません。 この状態はそれぞれが別々に照会されるshowHorizontalLinesとshowVerticalLinesという2つの変数で保持されるので、getShowGridメソッドはありません。 showGrid - テーブル・ビューがグリッド線を描画する場合はtruesetShowVerticalLines(boolean), setShowHorizontalLines(boolean)public void setShowHorizontalLines(boolean showHorizontalLines)
showHorizontalLinesがtrueの場合は描画し、falseの場合は描画しません。 showHorizontalLines - テーブル・ビューが水平線を描画する場合はtruegetShowHorizontalLines(), setShowGrid(boolean), setShowVerticalLines(boolean)public void setShowVerticalLines(boolean showVerticalLines)
showVerticalLinesがtrueの場合は描画し、falseの場合は描画しません。 showVerticalLines - テーブル・ビューが垂直線を描画する場合はtruegetShowVerticalLines(), setShowGrid(boolean), setShowHorizontalLines(boolean)public boolean getShowHorizontalLines()
setShowHorizontalLines(boolean)public boolean getShowVerticalLines()
setShowVerticalLines(boolean)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_COLUMNSgetAutoResizeMode(), doLayout()public int getAutoResizeMode()
setAutoResizeMode(int), doLayout()public void setAutoCreateColumnsFromModel(boolean autoCreateColumnsFromModel)
autoCreateColumnsFromModelフラグを設定します。 このメソッドは、autoCreateColumnsFromModelがfalseからtrueに変更された場合にcreateDefaultColumnsFromModelを呼び出します。 autoCreateColumnsFromModel - JTableが列を自動作成する場合はtruegetAutoCreateColumnsFromModel(), createDefaultColumnsFromModel()public boolean getAutoCreateColumnsFromModel()
setModelは既存の列をクリアして、新しいモデルから新しい列を作成します。 また、tableChanged通知のイベントが、テーブル全体が変更されたことを示している場合は、列が再構築されます。 デフォルトはtrueです。 setAutoCreateColumnsFromModel(boolean), createDefaultColumnsFromModel()public void createDefaultColumnsFromModel()
TableModelインタフェースに定義されたgetColumnCountメソッドを使って、データ・モデルからテーブルのデフォルトの列を作成します。
モデルからの情報に基づいて新しい列を作成する前に、既存の列があればそれをクリアします。
public void setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)
TableColumnにレンダラが設定されていない場合に使用する、デフォルトのセル・レンダラを設定します。 レンダリングがnullの場合は、この列クラスのデフォルトのレンダリングを削除します。 columnClass - このcolumnClassにデフォルトのセル・レンダリングを設定するrenderer - このcolumnClassに使うデフォルトのセル・レンダリングgetDefaultRenderer(java.lang.Class<?>), setDefaultEditor(java.lang.Class<?>, javax.swing.table.TableCellEditor)public TableCellRenderer getDefaultRenderer(Class<?> columnClass)
TableColumnにレンダラが設定されていない場合に使用する、セル・レンダラを返します。 セルのレンダリング時には、レンダリングは列内のセルのクラスに基づいてエントリのHashtableから取得されます。 このcolumnClassにエントリがない場合、このメソッドはもっとも明確なスーパー・クラスのエントリを返します。 JTableは、そのすべてを変更または置換できるObject、Number、およびBooleanのエントリをインストールします。 columnClass - このcolumnClassのデフォルトのセル・レンダリングを返すsetDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer), getColumnClass(int)public void setDefaultEditor(Class<?> columnClass, TableCellEditor editor)
TableColumnにエディタが設定されていない場合に使用する、デフォルトのセル・エディタを設定します。 テーブルまたはテーブル内の特定の列で編集が必要ない場合は、TableModelインタフェースのisCellEditableメソッドを使用して、このJTableがこうした列でエディタを起動することのないようにします。 エディタがnullの場合は、この列クラスからデフォルトのエディタを削除します。 columnClass - このcolumnClassにデフォルトのセル・エディタを設定するeditor - このcolumnClassに使うデフォルトのセル・エディタTableModel.isCellEditable(int, int), getDefaultEditor(java.lang.Class<?>), setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)public TableCellEditor getDefaultEditor(Class<?> columnClass)
TableColumnにエディタが設定されていない場合に使用するエディタを返します。 セルの編集時には、エディタは列内のセルのクラスに基づいてエントリのHashtableから取得されます。 このcolumnClassにエントリがない場合、このメソッドはもっとも明確なスーパー・クラスのエントリを返します。 JTableは、そのすべてを変更または置換できるObject、Number、およびBooleanのエントリをインストールします。 columnClass - このcolumnClassのデフォルトのセル・エディタを返すsetDefaultEditor(java.lang.Class<?>, javax.swing.table.TableCellEditor), getColumnClass(int)public void setDragEnabled(boolean b)
trueに設定し、テーブルのTransferHandlerの値をnon-nullにしてください。 dragEnabledプロパティのデフォルト値はfalseです。
このプロパティを受け入れ、ユーザーのドラッグ・ジェスチャを認識する処理は、ルック・アンド・フィール実装(特にテーブルのTableUI)によって行われます。 自動ドラッグ処理が有効である場合、ほとんどのルック・アンド・フィール (BasicLookAndFeelのサブクラスのルック・アンド・フィールを含む)は、ユーザーが項目(単一選択モード)または選択内容(その他の選択モード)の上でマウス・ボタンを押し、マウスを数ピクセル移動すると、ドラッグ・アンド・ドロップ操作を開始します。 したがって、このプロパティをtrueに設定すると、選択の動作に微妙に影響する場合があります。
このプロパティを無視するようなルック・アンド・フィールを使用している場合も、テーブルのTransferHandler上でexportAsDragを呼び出すことにより、ドラッグ・アンド・ドロップ操作を開始できます。
b - 自動ドラッグ処理を有効にするかどうかHeadlessException - bがtrueで、GraphicsEnvironment.isHeadless()がtrueを返す場合GraphicsEnvironment.isHeadless(), getDragEnabled(), JComponent.setTransferHandler(javax.swing.TransferHandler), TransferHandlerpublic boolean getDragEnabled()
dragEnabledプロパティの値setDragEnabled(boolean)public final void setDropMode(DropMode dropMode)
DropMode.USE_SELECTIONになっています。 ただし、ユーザー側の操作を改善する場合は、ほかのモードを使用することをお勧めします。 たとえばDropMode.ONは、テーブル内の実際の選択内容に影響を及ぼすことなく、選択されたように項目を表示する動作と似た動作を提供します。
JTableは次のドロップ・モードをサポートしています。
DropMode.USE_SELECTIONDropMode.ONDropMode.INSERTDropMode.INSERT_ROWSDropMode.INSERT_COLSDropMode.ON_OR_INSERTDropMode.ON_OR_INSERT_ROWSDropMode.ON_OR_INSERT_COLS
このコンポーネントがドロップを受け付けるTransferHandlerを持っていなければ、ドロップ・モードの効果はありません。
dropMode - 使用するドロップ・モードIllegalArgumentException - ドロップ・モードがサポートされていないかnullの場合getDropMode(), getDropLocation(), JComponent.setTransferHandler(javax.swing.TransferHandler), TransferHandlerpublic final DropMode getDropMode()
setDropMode(javax.swing.DropMode)public final JTable.DropLocation getDropLocation()
nullを返します。
このメソッドは、TransferHandlerからドロップ位置を照会する手段にはなりません。ドロップ位置は、TransferHandlerのcanImportが返され、ドロップ位置を表示する準備ができてから設定されるためです。
このプロパティが変更されると、コンポーネントにより、プロパティ変更イベントdropLocationがトリガーされます。
setDropMode(javax.swing.DropMode), TransferHandler.canImport(TransferHandler.TransferSupport)public void setAutoCreateRowSorter(boolean autoCreateRowSorter)
RowSorterを作成するかどうかを指定します。
setAutoCreateRowSorter(true)が呼び出されると、ただちにTableRowSorterが作成され、テーブルにインストールされます。 autoCreateRowSorterプロパティの値がtrueの場合、モデルが変更されるたびに新しいTableRowSorterが作成され、テーブルの行ソーターとして設定されます。 autoCreateRowSorterプロパティのデフォルト値はfalseです。
autoCreateRowSorter - RowSorterが自動的に作成されるかどうかTableRowSorterpublic boolean getAutoCreateRowSorter()
RowSorterを作成し、テーブルのソーターとしてインストールする場合はtrue、それ以外の場合はfalseを返します。RowSorterが作成される場合はtruepublic void setUpdateSelectionOnSort(boolean update)
update - ソート時に選択内容を更新するかどうかpublic boolean getUpdateSelectionOnSort()
public void setRowSorter(RowSorter<? extends TableModel> sorter)
RowSorterを設定します。 RowSorterは、JTableにソートおよびフィルタ・リング機能を提供するために使用されます。
このメソッドは、クリアし、可変の行の高さをすべてリセットします。
このメソッドは、適切な場合にプロパティ名"rowSorter"でPropertyChangeEventをトリガーします。 下位互換性のために、このメソッドは追加イベントをプロパティ名"sorter"でトリガーします。
RowSorterの配下のモデルがこのJTableの配下のモデルと一致しない場合の動作は保証されません。
sorter - RowSorter。nullの場合、ソートは無効TableRowSorterpublic RowSorter<? extends TableModel> getRowSorter()
public void setSelectionMode(int selectionMode)
ノート: JTableは、列と行の選択を処理するすべてのメソッドを提供します。 setSelectionModeなどの状態を設定する際、行選択モデルのモードを更新するだけでなく、columnModelの選択モデルで同様の値を設定します。 行および列の選択モデルを別々のモードで機能させるには、それらを両方とも直接設定します。
JTableの行選択モデルと列選択モデルはどちらともデフォルトでDefaultListSelectionModelを使用するので、JTableはJListと同じように動作します。 モードの詳細は、JListのsetSelectionModeを参照してください。
public void setRowSelectionAllowed(boolean rowSelectionAllowed)
rowSelectionAllowed - このモデルが行選択を許可する場合はtruegetRowSelectionAllowed()public boolean getRowSelectionAllowed()
setRowSelectionAllowed(boolean)public void setColumnSelectionAllowed(boolean columnSelectionAllowed)
columnSelectionAllowed - このモデルが列選択を許可する場合はtruegetColumnSelectionAllowed()public boolean getColumnSelectionAllowed()
setColumnSelectionAllowed(boolean)public void setCellSelectionEnabled(boolean cellSelectionEnabled)
isCellSelectedをオーバーライドします。 このメソッドは、columnModelのrowSelectionAllowedプロパティおよびcolumnSelectionAllowedプロパティを指定された値に設定するのと同じことです。 cellSelectionEnabled - 行と列の同時選択を許可する場合はtruegetCellSelectionEnabled(), isCellSelected(int, int)public boolean getCellSelectionEnabled()
getRowSelectionAllowed() && getColumnSelectionAllowed()と同等です。 setCellSelectionEnabled(boolean)public void selectAll()
public void clearSelection()
public void setRowSelectionInterval(int index0,
int index1)
index0からindex1までの行(上下限値を含む)を選択します。index0 - 範囲の一方の端の値index1 - 範囲の他方の端の値IllegalArgumentException - index0またはindex1が[0, getRowCount()-1]の範囲外の場合public void setColumnSelectionInterval(int index0,
int index1)
index0からindex1までの列(上下限値を含む)を選択します。index0 - 範囲の一方の端の値index1 - 範囲の他方の端の値IllegalArgumentException - index0またはindex1が[0, getColumnCount()-1]の範囲外の場合public void addRowSelectionInterval(int index0,
int index1)
index0からindex1までの行(上下限値を含む)を現在の選択領域に追加します。index0 - 範囲の一方の端の値index1 - 範囲の他方の端の値IllegalArgumentException - index0またはindex1が[0, getRowCount()-1]の範囲外の場合public void addColumnSelectionInterval(int index0,
int index1)
index0からindex1までの列(上下限値を含む)を現在の選択領域に追加します。index0 - 範囲の一方の端の値index1 - 範囲の他方の端の値IllegalArgumentException - index0またはindex1が[0, getColumnCount()-1]の範囲外の場合public void removeRowSelectionInterval(int index0,
int index1)
index0からindex1までの行(上下限値を含む)の選択を解除します。index0 - 範囲の一方の端の値index1 - 範囲の他方の端の値IllegalArgumentException - index0またはindex1が[0, getRowCount()-1]の範囲外の場合public void removeColumnSelectionInterval(int index0,
int index1)
index0からindex1までの列(上下限値を含む)の選択を解除します。index0 - 範囲の一方の端の値index1 - 範囲の他方の端の値IllegalArgumentException - index0またはindex1が[0, getColumnCount()-1]の範囲外の場合public int getSelectedRow()
public int getSelectedColumn()
public int[] getSelectedRows()
getSelectedRow()public int[] getSelectedColumns()
getSelectedColumn()public int getSelectedRowCount()
public int getSelectedColumnCount()
public boolean isRowSelected(int row)
rowが有効なインデックスであり、そのインデックスで示される行が選択されている場合はtrue (0は最初の行)public boolean isColumnSelected(int column)
column - 列モデルの列columnが有効なインデックスであり、そのインデックスで示される列が選択されている場合はtrue (0は最初の列)public boolean isCellSelected(int row,
int column)
row - 照会される行column - 照会される列rowとcolumnが有効なインデックスであり、インデックス(row, column)位置のセルが選択されている場合はtrue。この場合、最初の行と最初の列はインデックス0で示されるpublic void changeSelection(int rowIndex,
int columnIndex,
boolean toggle,
boolean extend)
toggleとextendの2つのフラグの状態によって、テーブルの選択モデルを更新します。 UIが受け取ったキーボード・イベントまたはマウス・イベントによって行われた選択範囲の変更はこのメソッドによって処理され、サブクラスが動作をオーバーライドできるようになります。 UIには、不連続な選択範囲の先頭を操作する場合など、このメソッドが提供するよりも高度な機能を必要とするものもあり、一部の選択範囲の変更ではそのようなUIがこのメソッドに呼び込まれないことがあります。
実装は次の規則を使用します。
toggle: false、extend: false。 既存の選択をクリアし、新しいセルが確実に選択されるようにする。
toggle: false、extend: true。 既存の選択をアンカーから指定のセルまで拡張して、ほかのすべての選択をクリアする。
toggle: true、extend: false。 指定されたセルが選択されている場合、そのセルを選択解除する。 選択されていない場合、そのセルを選択する。
toggle: true、extend: true。 アンカーの選択状態を、そのアンカーと指定されたセル間のすべてのセルに適用する。
rowIndex - rowの選択に影響するcolumnIndex - columnの選択に影響するtoggle - 上記参照extend - trueの場合、現在の選択を拡張するpublic Color getSelectionForeground()
ColorオブジェクトsetSelectionForeground(java.awt.Color), setSelectionBackground(java.awt.Color)public void setSelectionForeground(Color selectionForeground)
このプロパティのデフォルト値は、ルック・アンド・フィールの実装によって定義されます。
これはJavaBeansバウンド・プロパティです。
selectionForeground - 選択されたリスト項目のフォアグラウンドで使用するColorgetSelectionForeground(), setSelectionBackground(java.awt.Color), JComponent.setForeground(java.awt.Color), JComponent.setBackground(java.awt.Color), JComponent.setFont(java.awt.Font)public Color getSelectionBackground()
ColorsetSelectionBackground(java.awt.Color), setSelectionForeground(java.awt.Color)public void setSelectionBackground(Color selectionBackground)
このプロパティのデフォルト値は、ルック・アンド・フィールの実装によって定義されます。
これはJavaBeansバウンド・プロパティです。
selectionBackground - 選択されたセルのバックグラウンドで使用するColorgetSelectionBackground(), setSelectionForeground(java.awt.Color), JComponent.setForeground(java.awt.Color), JComponent.setBackground(java.awt.Color), JComponent.setFont(java.awt.Font)public TableColumn getColumn(Object identifier)
equalsを使って比較した場合に識別子がidentifierに等しい、テーブル内の列のTableColumnオブジェクトを返します。identifier - 識別子オブジェクトTableColumnオブジェクトIllegalArgumentException - identifierがnullの場合、またはこのidentifierを持っているTableColumnがない場合public int convertColumnIndexToModel(int viewColumnIndex)
viewColumnIndexのビュー内の列のインデックスを、テーブル・モデル内の列のインデックスにマッピングします。 モデル内の対応する列のインデックスを返します。 viewColumnIndexがゼロより小さい場合は、viewColumnIndexを返します。 viewColumnIndex - ビュー内の列のインデックスconvertColumnIndexToView(int)public int convertColumnIndexToView(int modelColumnIndex)
modelColumnIndexのテーブル・モデル内の列のインデックスを、ビュー内の列のインデックスにマッピングします。 ビュー内の対応する列のインデックスを返します。この列が表示されていない場合は-1を返します。 modelColumnIndexがゼロより小さい場合は、modelColumnIndexを返します。 modelColumnIndex - モデル内の列のインデックスconvertColumnIndexToModel(int)public int convertRowIndexToView(int modelRowIndex)
TableModelの行のインデックスをビューにマッピングします。 モデルのインデックスとビューのインデックスが同じである場合、モデルの内容はソートされません。 modelRowIndex - モデルの行のインデックスIndexOutOfBoundsException - ソート機能が有効で、TableModelの行数より値の大きいインデックスが渡された場合TableRowSorterpublic int convertRowIndexToModel(int viewRowIndex)
TableModelにマッピングします。 モデルのインデックスとビューのインデックスが同じである場合、モデルの内容はソートされません。 viewRowIndex - ビュー内の行のインデックスIndexOutOfBoundsException - ソート機能が有効で、getRowCountメソッドの決定に従ってJTableの範囲より値の大きいインデックスが渡された場合TableRowSorter, getRowCount()public int getRowCount()
JTableに表示できる行数を返します。 フィルタとともにRowSorterが指定された場合は、返される行数が配下のTableModelによって返される行数と異なる可能性があります。 JTableに表示される行数getColumnCount()public int getColumnCount()
getRowCount(), removeColumn(javax.swing.table.TableColumn)public String getColumnName(int column)
columnに表示される列の名前を返します。column - 照会されるビューの列column位置の列名(最初の列は列0)public Class<?> getColumnClass(int column)
columnに表示される列の型を返します。column - 照会されるビューの列columnにある列の種類(最初の列は列0)public Object getValueAt(int row, int column)
row、columnに位置するセル値を返します。
ノート: 列はテーブル・ビューの表示順で指定され、TableModelの列順では指定されません。 ユーザーがテーブル内の列を配列し直すとビュー内の指定されたインデックスの列が変更されるため、これは重要な相違になります。 一方、ユーザーのアクションはモデルの列順序付けに影響を及ぼしません。
row - 値が照会される行column - 値が照会される列public void setValueAt(Object aValue, int row, int column)
row、columnに位置するセルの値を設定します。
ノート: 列はテーブル・ビューの表示順で指定され、TableModelの列順では指定されません。 ユーザーがテーブル内の列を配列し直すとビュー内の指定されたインデックスの列が変更されるため、これは重要な相違になります。 一方、ユーザーのアクションはモデルの列順序付けに影響を及ぼしません。aValueは新しい値です。
aValue - 新しい値row - 変更されるセルの行column - 変更されるセルの列getValueAt(int, int)public boolean isCellEditable(int row,
int column)
rowおよびcolumnに位置するセルが編集可能な場合にtrueを返します。 そうでない場合は、セルのsetValueAtを呼び出しても影響しません。
ノート: 列はテーブル・ビューの表示順で指定され、TableModelの列順では指定されません。 ユーザーがテーブル内の列を配列し直すとビュー内の指定されたインデックスの列が変更されるため、これは重要な相違になります。 一方、ユーザーのアクションはモデルの列順序付けに影響を及ぼしません。
row - 値が照会される行column - 値が照会される列setValueAt(java.lang.Object, int, int)public void addColumn(TableColumn aColumn)
JTableの列モデルが保持する列の配列の末尾にaColumnを追加します。 aColumnの列名がnullの場合、aColumnの列名をgetModel().getColumnName()の返す名前に設定します。
このJTableに列を追加して、指定されたwidth、cellRenderer、およびcellEditorを使ってモデル内のmodelColumn番目の列のデータを表示するために、次を使用できます。
addColumn(new TableColumn(modelColumn, width, cellRenderer, cellEditor));
(TableColumnコンストラクタをどれでもかわりに使用できます。)モデル列番号はTableColumn内部に格納され、レンダリング時と編集時にモデル内の適切なデータ値を見つけるために使用されます。 モデル列番号は、列をビュー内で並べ替えても変更されません。 aColumn - 追加されるTableColumnremoveColumn(javax.swing.table.TableColumn)public void removeColumn(TableColumn aColumn)
JTableの列配列からaColumnを削除します。 ノート: このメソッドによって、モデルから列のデータが削除されることはありません。列のデータの表示を行っていたTableColumnのみが削除されます。 aColumn - 削除するTableColumnaddColumn(javax.swing.table.TableColumn)public void moveColumn(int column,
int targetColumn)
columnの列を、ビュー内のtargetColumnの列が現在占める位置に移動します。 targetColumnの従来の列は空きを作るために左または右にシフトされます。 column - 移動する列のインデックスtargetColumn - 列の新しいインデックスpublic int columnAtPoint(Point point)
pointがある列のインデックスを返します。もし、その結果が[0, getColumnCount()-1]の範囲内にない場合は -1を返します。point - 対象の位置pointがある列のインデックスを返します。もし、その結果が[0, getColumnCount()-1]の範囲内にない場合は -1rowAtPoint(java.awt.Point)public int rowAtPoint(Point point)
pointがある行のインデックスを返します。もし、その結果が[0, getRowCount()-1]の範囲内にない場合は -1を返します。point - 対象の位置pointがある行のインデックスを返します。もし、その結果が[0, getRowCount()-1]の範囲内にない場合は -1columnAtPoint(java.awt.Point)public Rectangle getCellRect(int row, int column, boolean includeSpacing)
rowとcolumnが交差する位置のセルの矩形を返します。 includeSpacingがtrueの場合、返される値は指定された行と列の全高さと全幅を含みます。 falseの場合、返される矩形はセルの間隔によってイン・セットされ、レンダリングの際設定されるレンダリング・コンポーネントまたは編集コンポーネントの真の境界が返されます。
列インデックスが有効で行インデックスがゼロより小さい場合、メソッドは、y値とheight値が適切に設定され、x値とwidth値がともにゼロに設定された矩形を返します。 一般に、行と列のどちらかのインデックスが適切な範囲外のセルを示す場合、メソッドはテーブルの範囲内でもっとも近いセルのもっとも近い縁を描く矩形を返します。 行と列のインデックスがどちらも範囲外の場合、返される矩形はもっとも近いセルのもっとも近い点を表しています。
どのケースでも、このメソッドを使用して1つの軸に合わせて結果を求める計算は、他方の軸では変則的な計算を行うので、失敗することはありません。 セルが有効でない場合、includeSpacingパラメータは無視されます。
row - 目的のセルが置かれている行インデックスcolumn - 画面内で目的のセルが置かれている列インデックス。この値は、テーブルのデータ・モデル内の列インデックスと同じであるとはかぎらない。データ・モデルの列インデックスを画面の列インデックスに変換する場合は、convertColumnIndexToView(int)メソッドを使用できるincludeSpacing - falseの場合、真のセルの境界を返す。この境界は、列モデルと行モデルの高さと幅からセルの間隔を引くことによって計算されるrow、columnの位置のセルを保持する矩形getIntercellSpacing()public void doLayout()
JTableの列全部の合計幅がテーブル幅に等しくなるように、テーブル内の1つまたは複数の列のサイズを変更します。
配置が開始される前に、メソッドはtableHeaderのresizingColumnを取得します。 囲み側ウィンドウのサイズ変更の結果として、メソッドが呼び出される場合は、resizingColumnはnullになります。 これは、サイズ変更がJTableの「外側」で起きたこと、および変更(デルタ)がこのJTableの自動サイズ変更モードに関係なくすべての列に反映されることを意味します。
resizingColumnがnullでない場合は、テーブル・サイズの変更ではなく、テーブル内のある列のサイズが変更されたことを示します。 この場合、自動サイズ変更モードにより、余分な、または足りないスペースが利用可能なすべての列で配分される方法が決定されます。
次に、各モードを示します。
Viewportの幅を超える場合は、水平スクロールバーを使用してそれらの列に対応する。 JTableがJScrollPaneに囲まれていない場合、テーブルの一部を不可視のままにすることがある。
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になる一連の整数を生成するアルゴリズムとなります。
targetSizeが[MIN, MAX]の範囲外の場合、このアルゴリズムによってすべてのサイズがそれぞれの適切な最大値または最小値の制限値に設定されます。
@Deprecated public void sizeColumnsToFit(boolean lastColumnOnly)
doLayout()に置き換えられています。 doLayout()public void sizeColumnsToFit(int resizingColumn)
doLayout()メソッドを使用してください。 resizingColumn - サイズ変更でこの調整を必要とする列。当てはまる列がない場合は -1doLayout()public String getToolTipText(MouseEvent event)
JComponentのgetToolTipTextメソッドをオーバーライドして、テキスト・セットがある場合にレンダリングのヒントを使用できるようにします。
ノート: JTableがレンダラのツールヒントを適切に表示できるようにするには、JTableがToolTipManagerに登録済のコンポーネントである必要があります。 これはinitializeLocalVarsで自動的に行われますが、あとでJTableにsetToolTipText(null)を通知すると、テーブル・コンポーネントを登録解除するので、レンダリングからのヒントはそれ以上表示されません。
getToolTipText、クラスJComponentJComponent.getToolTipText()public void setSurrendersFocusOnKeystroke(boolean surrendersFocusOnKeystroke)
surrendersFocusOnKeystroke - キー・ストロークによりエディタがアクティブになったとき、エディタがフォーカスを取得する場合はtruegetSurrendersFocusOnKeystroke()public boolean getSurrendersFocusOnKeystroke()
setSurrendersFocusOnKeystroke(boolean)public boolean editCellAt(int row,
int column)
row、columnに位置するセルのインデックスが有効な範囲内にあり、その位置にあるセルが編集可能な場合は、セルの編集をプログラムによって開始します。 これはeditCellAt(int, int, null)の簡易メソッドです。 row - 編集する行column - 編集する列public boolean editCellAt(int row,
int column,
EventObject e)
row、columnに位置するセルのインデックスが有効な範囲内にあり、その位置にあるセルが編集可能な場合は、セルの編集をプログラムによって開始します。 JTableが特定のテーブル、列、またはセルの値を編集できないようにするには、TableModelインタフェースのisCellEditableメソッドからfalseを返します。 row - 編集する行column - 編集する列e - shouldSelectCellに渡されるイベント。Java 2プラットフォームv1.2以降、shouldSelectCellは呼び出されなくなったpublic boolean isEditing()
editingColumn, editingRowpublic Component getEditorComponent()
public int getEditingColumn()
editingRowpublic int getEditingRow()
editingColumnpublic TableUI getUI()
TableUIオブジェクトpublic void setUI(TableUI ui)
ui - TableUI L&FオブジェクトUIDefaults.getUI(javax.swing.JComponent)public void updateUI()
UIManagerからの通知です。 現在のUIオブジェクトをUIManagerの最新バージョンに置き換えます。 updateUI、クラスJComponentJComponent.updateUI()public String getUIClassID()
getUIClassID、クラスJComponentJComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)public void setModel(TableModel dataModel)
newModelに設定し、それに新しいデータ・モデルからのリスナー通知を登録します。dataModel - このテーブルの新しいデータ・ソースIllegalArgumentException - newModelがnullである場合getModel()public TableModel getModel()
JTableが表示するデータを提供するTableModelを返します。JTableが表示するデータを提供するTableModelsetModel(javax.swing.table.TableModel)public void setColumnModel(TableColumnModel columnModel)
newModelに設定し、新しい列モデルからのリスナー通知を登録します。 また、JTableHeaderの列モデルをcolumnModelに設定します。 columnModel - このテーブルの新しいデータ・ソースIllegalArgumentException - columnModelがnullである場合getColumnModel()public TableColumnModel getColumnModel()
TableColumnModelを返します。setColumnModel(javax.swing.table.TableColumnModel)public void setSelectionModel(ListSelectionModel newModel)
newModelに設定し、新しい選択モデルからのリスナー通知を登録します。newModel - 新しい選択モデルIllegalArgumentException - newModelがnullである場合getSelectionModel()public ListSelectionModel getSelectionModel()
ListSelectionModelを返します。nullsetSelectionModel(javax.swing.ListSelectionModel)public void sorterChanged(RowSorterEvent e)
RowSorterが変更されたことを知らせるRowSorterListener通知です。sorterChanged、インタフェースRowSorterListenere - 変更を説明するRowSorterEventNullPointerException - eがnullである場合public void tableChanged(TableModelEvent e)
TableModelがTableModelEventを生成するときに呼び出されます。 TableModelEventはモデルの座標系で構築され、イベント受信時にJTableがビュー座標系への適切なマッピングを実行します。
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
1.3では、このメソッドは、必要に応じて選択状態が解除されます。
tableChanged、インタフェースTableModelListenerpublic void columnAdded(TableColumnModelEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnAdded、インタフェースTableColumnModelListenerTableColumnModelListenerpublic void columnRemoved(TableColumnModelEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnRemoved、インタフェースTableColumnModelListenerTableColumnModelListenerpublic void columnMoved(TableColumnModelEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnMoved、インタフェースTableColumnModelListenere - 受け取ったイベントTableColumnModelListenerpublic void columnMarginChanged(ChangeEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnMarginChanged、インタフェースTableColumnModelListenere - 受け取ったイベントTableColumnModelListenerpublic void columnSelectionChanged(ListSelectionEvent e)
TableColumnModelの選択モデルが変更されるときに呼び出されます。
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnSelectionChanged、インタフェースTableColumnModelListenere - 受け取ったイベントTableColumnModelListenerpublic void valueChanged(ListSelectionEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
valueChanged、インタフェースListSelectionListenere - 受け取ったイベントListSelectionListenerpublic void editingStopped(ChangeEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
editingStopped、インタフェースCellEditorListenere - 受け取ったイベントCellEditorListenerpublic void editingCanceled(ChangeEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
editingCanceled、インタフェースCellEditorListenere - 受け取ったイベントCellEditorListenerpublic void setPreferredScrollableViewportSize(Dimension size)
size - ビューがこのテーブルであるJViewportのpreferredSizeを指定するDimensionオブジェクトScrollable.getPreferredScrollableViewportSize()public Dimension getPreferredScrollableViewportSize()
getPreferredScrollableViewportSize、インタフェースScrollableJViewportのpreferredSizeを保持するDimensionオブジェクトScrollable.getPreferredScrollableViewportSize()public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
このメソッドは、ユーザーが単位スクロールを要求するたびに呼び出されます。
getScrollableUnitIncrement、インタフェースScrollablevisibleRect - ビュー・ポート内の可視のビュー領域orientation - SwingConstants.VERTICALまたはSwingConstants.HORIZONTALdirection - 上または左にスクロールする場合は0より小さく、下または右にスクロールする場合は0より大きいScrollable.getScrollableUnitIncrement(java.awt.Rectangle, int, int)public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
visibleRect.heightまたはvisibleRect.widthを返します。 Swing 1.1.1 (Java 2 v 1.2.2)からは、返される値によってビュー・ポイントが行の境界に明確に配置されるようになりました。 getScrollableBlockIncrement、インタフェースScrollablevisibleRect - ビュー・ポート内の可視のビュー領域orientation - SwingConstants.VERTICALまたはSwingConstants.HORIZONTAL。direction - 上または左にスクロールする場合は0より小さく、下または右にスクロールする場合は0より大きい。visibleRect.heightまたはvisibleRect.widthScrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)public boolean getScrollableTracksViewportWidth()
autoResizeModeがAUTO_RESIZE_OFFに設定されている場合はfalseを返します。これはビュー・ポートの幅がテーブルの幅を決定しないことを示します。 それ以外の場合はtrueを返します。 getScrollableTracksViewportWidth、インタフェースScrollableautoResizeModeがAUTO_RESIZE_OFFに設定されている場合はfalse、そうでない場合はtrueScrollable.getScrollableTracksViewportWidth()public boolean getScrollableTracksViewportHeight()
getFillsViewportHeightがtrueで、テーブルの適切な高さがビュー・ポートの高さより低い場合を除き、falseを返して、ビュー・ポートの高さがテーブルの高さを決めないことを示します。getScrollableTracksViewportHeight、インタフェースScrollablegetFillsViewportHeightがtrueで、テーブルをビュー・ポートのサイズに引き伸ばす必要がある場合を除きfalseScrollable.getScrollableTracksViewportHeight(), setFillsViewportHeight(boolean), getFillsViewportHeight()public void setFillsViewportHeight(boolean fillsViewportHeight)
falseです。 fillsViewportHeight - このテーブルを常に囲み側のビュー・ポートの高さに合わせて大きくするかどうかgetFillsViewportHeight(), getScrollableTracksViewportHeight()public boolean getFillsViewportHeight()
setFillsViewportHeight(boolean)protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
JComponentKeyEvent eの結果としてksのキー・バインドを処理するために呼び出されます。 このメソッドは適切なInputMap、そのバインディング、ActionMapのアクションを取得して、(アクションが見つかり、コンポーネントが有効な場合)アクションを通知するためにnotifyActionを呼び出します。 processKeyBinding、クラスJComponentks - 照会するKeyStrokee - KeyEventcondition - 次の値のいずれか。
pressed - キーが押されている場合はtrueprotected void createDefaultRenderers()
DefaultTableCellRendererprotected void createDefaultEditors()
DefaultCellEditorprotected void initializeLocalVars()
protected TableModel createDefaultDataModel()
DefaultTableModelであるデフォルトのテーブル・モデル・オブジェクトを返します。 サブクラスはこのメソッドをオーバーライドして、異なるテーブル・モデル・オブジェクトを返すことができます。 DefaultTableModelprotected TableColumnModel createDefaultColumnModel()
DefaultTableColumnModelであるデフォルトの列モデル・オブジェクトを返します。 サブクラスはこのメソッドをオーバーライドして、異なる列モデル・オブジェクトを返すことができます。 DefaultTableColumnModelprotected ListSelectionModel createDefaultSelectionModel()
DefaultListSelectionModelであるデフォルトの選択モデル・オブジェクトを返します。 サブクラスはこのメソッドをオーバーライドして、異なる選択モデル・オブジェクトを返すことができます。 DefaultListSelectionModelprotected JTableHeader createDefaultTableHeader()
JTableHeaderであるデフォルトのテーブル・ヘッダー・オブジェクトを返します。 サブクラスはこのメソッドをオーバーライドして、異なるテーブル・ヘッダー・オブジェクトを返すことができます。 JTableHeaderprotected void resizeAndRepaint()
revalidateの後にrepaintを呼び出すのと同等です。public TableCellEditor getCellEditor()
null)を返します。TableCellEditor。テーブルが現在編集中でない場合はnull。cellEditor, getCellEditor(int, int)public void setCellEditor(TableCellEditor anEditor)
anEditor - アクティブなセル・エディタcellEditorpublic void setEditingColumn(int aColumn)
editingColumn変数を設定します。aColumn - 編集されるセルの列editingColumnpublic void setEditingRow(int aRow)
editingRow変数を設定します。aRow - 編集されるセルの行editingRowpublic TableCellRenderer getCellRenderer(int row, int column)
TableColumnがnull以外のレンダリングを持つ場合は、そのレンダリングを返します。 そうでない場合は、getColumnClassを使用してこの列のデータのクラスを見つけて、この型のデータのデフォルト・レンダリングを返します。
ノート: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してレンダリングを提供し、デフォルトの動作をサブクラスが安全にオーバーライドできるようにします。
row - レンダリングするセルの行。0は最初の行column - レンダリングするセルの列。0は最初の列nullの場合、この型のオブジェクトのデフォルトのレンダリングを返すDefaultTableCellRenderer, TableColumn.setCellRenderer(javax.swing.table.TableCellRenderer), setDefaultRenderer(java.lang.Class<?>, javax.swing.table.TableCellRenderer)public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
row、columnの位置にあるセルの値および選択状態をデータ・モデルに照会して、レンダラを準備します。 イベントの位置にあるコンポーネント(ComponentまたはJComponent)を返します。
出力操作の間、このメソッドは、選択またはフォーカスを指定することなくレンダリングを設定して、これらを出力対象から除外します。 テーブルを出力するかどうかに基づいてその他のカスタマイズを行う場合は、この位置またはカスタム・レンダリング内のJComponent.isPaintingForPrint()の値を確認できます。
ノート: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してレンダリングを準備し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。
renderer - 準備するTableCellRendererrow - レンダリングするセルの行。0は最初の行column - レンダリングするセルの列。0は最初の列Componentpublic TableCellEditor getCellEditor(int row, int column)
rowとcolumnによって指定されるセルの適切なエディタを返します。 この列のTableColumnがnull以外のエディタを持つ場合は、そのエディタを返します。 そうでない場合は、getColumnClassを使用してこの列のデータのクラスを見つけて、この型のデータのデフォルト・エディタを返します。
ノート: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してエディタを提供し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。
row - 編集するセルの行。0は最初の行column - 編集するセルの列。0は最初の列nullの場合、この型のセルのデフォルトのエディタを返すDefaultCellEditorpublic Component prepareEditor(TableCellEditor editor, int row, int column)
row、columnの位置にあるセルの値および選択状態をデータ・モデルに照会して、エディタを準備します。
ノート: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してエディタを準備し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。
editor - 設定するTableCellEditorrow - 編集するセルの行。0は最初の行column - 編集するセルの列。0は最初の列Componentpublic void removeEditor()
protected String paramString()
nullにはなりません。 paramString、クラスJComponentpublic boolean print()
throws PrinterException
JTableを、PrintMode.FIT_WIDTHモードで、ヘッダー・テキストまたはフッター・テキストを指定せずに印刷する簡易メソッドです。 出力中は、中止オプション付きのモーダルな進捗ダイアログが表示されます。
ノート: ヘッドレス・モードでは、ダイアログは表示されず、デフォルトのプリンタを使って出力が行われます。
SecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合PrinterException - 出力システムのエラーが原因でジョブが停止した場合print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService), getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)public boolean print(JTable.PrintMode printMode) throws PrinterException
JTableを、指定された出力モードで、ヘッダー・テキストまたはフッター・テキストを指定せずに出力する簡易メソッドです。 出力中は、中止オプション付きのモーダルな進捗ダイアログが表示されます。
ノート: ヘッドレス・モードでは、ダイアログは表示されず、デフォルトのプリンタを使って出力が行われます。
printMode - Printableが使用する出力モードSecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合PrinterException - 出力システムのエラーが原因でジョブが停止した場合print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService), getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) throws PrinterException
JTableを、指定された出力モードで、ヘッダー・テキストまたはフッター・テキストを指定して出力する簡易メソッドです。 出力中は、中止オプション付きのモーダルな進捗ダイアログが表示されます。
ノート: ヘッドレス・モードでは、ダイアログは表示されず、デフォルトのプリンタを使って出力が行われます。
printMode - Printableが使用する出力モードheaderFormat - ヘッダーの出力に使用されるテキストを示すMessageFormat。ヘッダーがない場合はnullfooterFormat - フッターの出力に使用されるテキストを示すMessageFormat。フッターがない場合はnullSecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合PrinterException - 出力システムのエラーが原因でジョブが停止した場合print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService), getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat, boolean showPrintDialog, PrintRequestAttributeSet attr, boolean interactive) throws PrinterException, HeadlessException
printメソッドで指定されているとおりに、印刷サービスとして指定されたデフォルト・プリンタを使って、このテーブルを印刷します。printMode - Printableが使用する出力モードheaderFormat - ヘッダーの出力に使用されるテキストを示すMessageFormat。ヘッダーがない場合はnullfooterFormat - フッターの出力に使用されるテキストを示すMessageFormat。フッターがない場合はnullshowPrintDialog - 出力ダイアログを表示するかどうかattr - 出力属性を示すPrintRequestAttributeSet。出力属性がない場合はnullinteractive - 対話型モードで出力するかどうかHeadlessException - メソッドが出力ダイアログを表示するか、対話型で実行するように求められ、GraphicsEnvironment.isHeadlessがtrueを返した場合SecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合PrinterException - 出力システムのエラーが原因でジョブが停止した場合print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean, PrintService), getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat)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。ヘッダーがない場合はnullfooterFormat - フッターの出力に使用されるテキストを示すMessageFormat。フッターがない場合はnullshowPrintDialog - 出力ダイアログを表示するかどうかattr - 出力属性を示すPrintRequestAttributeSet。出力属性がない場合はnullinteractive - 対話型モードで出力するかどうかservice - 出力先のPrintService。デフォルトのプリンタを使用する場合はnullHeadlessException - メソッドが出力ダイアログを表示するか、対話型で実行するように求められ、GraphicsEnvironment.isHeadlessがtrueを返した場合SecurityException - セキュリティ・マネージャが存在し、セキュリティ・マネージャのSecurityManager.checkPrintJobAccess()メソッドにより、このスレッドでの出力ジョブ要求の作成が禁止されている場合PrinterException - 出力システムのエラーが原因でジョブが停止した場合getPrintable(javax.swing.JTable.PrintMode, java.text.MessageFormat, java.text.MessageFormat), GraphicsEnvironment.isHeadless()public Printable getPrintable(JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat)
Printableを返します。
このメソッドは、JTableのprintメソッドによって使用されるデフォルトの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。ヘッダーがない場合はnullfooterFormat - フッターの出力に使用されるテキストを示すMessageFormat。フッターがない場合はnullPrintableprint(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean), Printable, PrinterJobpublic AccessibleContext getAccessibleContext()
getAccessibleContext、インタフェースAccessiblegetAccessibleContext、クラスComponent バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。