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
のVector
sの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(tm)用の長期間の格納サポートがjava.beans
パッケージに追加されています。XMLEncoder
を参照してください。
DefaultTableModel
, TableRowSorter
修飾子と型 | クラスと説明 |
---|---|
protected class |
JTable.AccessibleJTable
このクラスは
JTable クラスのアクセシビリティ・サポートを実装しています。 |
static class |
JTable.DropLocation
TransferHandler.DropLocation のサブクラスであり、JTable のドロップ位置を表します。 |
static class |
JTable.PrintMode
JTable の印刷に使用する印刷モードです。 |
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.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_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, 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()
Look & Feelクラスの名前の構築に使用された接尾辞を返します。このクラスは、このコンポーネントをレンダリングするのに使用されます。
|
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, update
add, 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, validateTree
action, 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, transferFocusUpCycle
public 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
- テーブルが保持する列数DefaultTableModel
public 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
、クラス: JComponent
configureEnclosingScrollPane()
protected void configureEnclosingScrollPane()
JTable
が囲み側JScrollPane
のviewportView
ですが、その場合、特にテーブルのtableHeader
をスクロール・ペインのcolumnHeaderView
としてインストールすることによって、このScrollPane
を設定します。new JScrollPane(myTable)
を使用して通常の方法でJTable
をJScrollPane
に追加すると、JTable
で(表がビューポートに追加されるときに)addNotify
が呼び出されます。次に、JTable
のaddNotify
メソッドがこのメソッドを呼び出します。このメソッドは、サブクラスがこのデフォルトのインストール・プロシージャをオーバーライドできるように保護されています。addNotify()
public void removeNotify()
unconfigureEnclosingScrollPane
メソッドを呼び出します。removeNotify
、クラス: JComponent
unconfigureEnclosingScrollPane()
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
を返します。tableHeader
setTableHeader(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
- セル間の新しい幅と高さを指定するDimension
getIntercellSpacing()
public Dimension getIntercellSpacing()
setIntercellSpacing(java.awt.Dimension)
public void setGridColor(Color gridColor)
gridColor
に設定し、再表示します。デフォルトの色はLook & Feelに依存します。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
です。
このプロパティを受け入れ、ユーザーのドラッグ・ジェスチャを認識する処理は、Look & Feel実装(特にテーブルのTableUI
)によって行われます。自動ドラッグ処理が有効である場合、ほとんどのLook & Feel (BasicLookAndFeel
のサブクラスのLook & Feelを含む)は、ユーザーが項目(単一選択モード)または選択内容(その他の選択モード)の上でマウス・ボタンを押し、マウスを数ピクセル移動すると、ドラッグ&ドロップ操作を開始します。したがって、このプロパティをtrue
に設定すると、選択の動作に微妙に影響する場合があります。
このプロパティを無視するようなLook & Feelを使用している場合も、テーブルのTransferHandler
上でexportAsDrag
を呼び出すことにより、ドラッグ&ドロップ操作を開始できます。
b
- 自動ドラッグ処理を有効にするかどうかHeadlessException
- b
がtrue
で、GraphicsEnvironment.isHeadless()
がtrue
を返す場合GraphicsEnvironment.isHeadless()
, getDragEnabled()
, JComponent.setTransferHandler(javax.swing.TransferHandler)
, TransferHandler
public boolean getDragEnabled()
dragEnabled
プロパティの値setDragEnabled(boolean)
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
の場合getDropMode()
, getDropLocation()
, JComponent.setTransferHandler(javax.swing.TransferHandler)
, TransferHandler
public 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
が自動的に作成されるかどうかTableRowSorter
public 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
の場合、ソートは無効TableRowSorter
public RowSorter<? extends TableModel> getRowSorter()
public void setSelectionMode(int selectionMode)
注意: JTable
は、列と行の選択を処理するすべてのメソッドを提供します。setSelectionMode
などの状態を設定する際、JTableは行選択モデルのモードを更新するだけでなく、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)
このプロパティのデフォルト値は、Look & Feelの実装によって定義されます。
これはJavaBeansバウンド・プロパティです。
selectionForeground
- 選択されたリスト項目のフォアグラウンドで使用するColor
getSelectionForeground()
, setSelectionBackground(java.awt.Color)
, JComponent.setForeground(java.awt.Color)
, JComponent.setBackground(java.awt.Color)
, JComponent.setFont(java.awt.Font)
public Color getSelectionBackground()
Color
setSelectionBackground(java.awt.Color)
, setSelectionForeground(java.awt.Color)
public void setSelectionBackground(Color selectionBackground)
このプロパティのデフォルト値は、Look & Feelの実装によって定義されます。
これはJavaBeansバウンド・プロパティです。
selectionBackground
- 選択されたセルのバックグラウンドで使用するColor
getSelectionBackground()
, 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
の行数より値の大きいインデックスが渡された場合TableRowSorter
public 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
- 追加されるTableColumn
removeColumn(javax.swing.table.TableColumn)
public void removeColumn(TableColumn aColumn)
JTable
の列配列からaColumn
を削除します。注意: このメソッドによって、モデルから列のデータが削除されることはありません。列のデータの表示を行っていたTableColumn
のみが削除されます。aColumn
- 削除するTableColumn
addColumn(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
、クラス: JComponent
JComponent.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
, editingRow
public Component getEditorComponent()
public int getEditingColumn()
editingRow
public int getEditingRow()
editingColumn
public TableUI getUI()
TableUI
オブジェクトpublic void setUI(TableUI ui)
ui
- TableUI L&FオブジェクトUIDefaults.getUI(javax.swing.JComponent)
public void updateUI()
UIManager
からの通知です。現在のUIオブジェクトをUIManager
の最新バージョンに置き換えます。updateUI
、クラス: JComponent
JComponent.updateUI()
public String getUIClassID()
getUIClassID
、クラス: JComponent
JComponent.getUIClassID()
, UIDefaults.getUI(javax.swing.JComponent)
public void setModel(TableModel dataModel)
newModel
に設定し、それに新しいデータ・モデルからのリスナー通知を登録します。dataModel
- このテーブルの新しいデータ・ソースIllegalArgumentException
- newModel
がnull
である場合getModel()
public TableModel getModel()
JTable
が表示するデータを提供するTableModel
を返します。JTable
が表示するデータを提供するTableModel
setModel(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
を返します。null
setSelectionModel(javax.swing.ListSelectionModel)
public void sorterChanged(RowSorterEvent e)
RowSorter
が変更されたことを知らせるRowSorterListener
通知です。sorterChanged
、インタフェース: RowSorterListener
e
- 変更を説明するRowSorterEvent
NullPointerException
- e
がnull
である場合public void tableChanged(TableModelEvent e)
TableModel
がTableModelEvent
を生成するときに呼び出されます。TableModelEvent
はモデルの座標系で構築され、イベント受信時にJTable
がビュー座標系への適切なマッピングを実行します。
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTable
が内部的に使用します。
JDK Version 1.3では、このメソッドは、必要に応じて選択状態が解除されます。
tableChanged
、インタフェース: TableModelListener
public void columnAdded(TableColumnModelEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnAdded
、インタフェース: TableColumnModelListener
TableColumnModelListener
public void columnRemoved(TableColumnModelEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnRemoved
、インタフェース: TableColumnModelListener
TableColumnModelListener
public void columnMoved(TableColumnModelEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnMoved
、インタフェース: TableColumnModelListener
e
- 受け取ったイベントTableColumnModelListener
public void columnMarginChanged(ChangeEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnMarginChanged
、インタフェース: TableColumnModelListener
e
- 受け取ったイベントTableColumnModelListener
public void columnSelectionChanged(ListSelectionEvent e)
TableColumnModel
の選択モデルが変更されるときに呼び出されます。
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
columnSelectionChanged
、インタフェース: TableColumnModelListener
e
- 受け取ったイベントTableColumnModelListener
public void valueChanged(ListSelectionEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
valueChanged
、インタフェース: ListSelectionListener
e
- 受け取ったイベントListSelectionListener
public void editingStopped(ChangeEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
editingStopped
、インタフェース: CellEditorListener
e
- 受け取ったイベントCellEditorListener
public void editingCanceled(ChangeEvent e)
アプリケーション・コードはこれらのメソッドを明示的には使用しません。これらのメソッドはJTableが内部的に使用します。
editingCanceled
、インタフェース: CellEditorListener
e
- 受け取ったイベントCellEditorListener
public void setPreferredScrollableViewportSize(Dimension size)
size
- ビューがこのテーブルであるJViewport
のpreferredSize
を指定するDimension
オブジェクトScrollable.getPreferredScrollableViewportSize()
public Dimension getPreferredScrollableViewportSize()
getPreferredScrollableViewportSize
、インタフェース: Scrollable
JViewport
のpreferredSize
を保持するDimension
オブジェクトScrollable.getPreferredScrollableViewportSize()
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
このメソッドは、ユーザーが単位スクロールを要求するたびに呼び出されます。
getScrollableUnitIncrement
、インタフェース: Scrollable
visibleRect
- ビュー・ポート内の可視のビュー領域orientation
- SwingConstants.VERTICAL
またはSwingConstants.HORIZONTAL
direction
- 上または左にスクロールする場合は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
、インタフェース: Scrollable
visibleRect
- ビュー・ポート内の可視のビュー領域orientation
- SwingConstants.VERTICALまたはSwingConstants.HORIZONTAL。direction
- 上または左にスクロールする場合は0より小さく、下または右にスクロールする場合は0より大きい。visibleRect.height
またはvisibleRect.width
Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)
public boolean getScrollableTracksViewportWidth()
autoResizeMode
がAUTO_RESIZE_OFF
に設定されている場合はfalseを返します。これはビュー・ポートの幅がテーブルの幅を決定しないことを示します。それ以外の場合はtrueを返します。getScrollableTracksViewportWidth
、インタフェース: Scrollable
autoResizeMode
がAUTO_RESIZE_OFF
に設定されている場合はfalse、そうでない場合はtrueScrollable.getScrollableTracksViewportWidth()
public boolean getScrollableTracksViewportHeight()
getFillsViewportHeight
がtrue
で、テーブルの適切な高さがビュー・ポートの高さより低い場合を除き、false
を返して、ビュー・ポートの高さがテーブルの高さを決めないことを示します。getScrollableTracksViewportHeight
、インタフェース: Scrollable
getFillsViewportHeight
がtrue
で、テーブルをビュー・ポートのサイズに引き伸ばす必要がある場合を除きfalse
Scrollable.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)
JComponent
KeyEvent
e
の結果としてks
のキー・バインドを処理するために呼び出されます。このメソッドは適切なInputMap
、そのバインディング、ActionMap
のアクションを取得して、(アクションが見つかり、コンポーネントが有効な場合)アクションを通知するためにnotifyAction
を呼び出します。processKeyBinding
、クラス: JComponent
ks
- 照会するKeyStroke
e
- KeyEvent
condition
- 次の値のいずれか。
pressed
- キーが押されている場合はtrueprotected void createDefaultRenderers()
DefaultTableCellRenderer
protected void createDefaultEditors()
DefaultCellEditor
protected void initializeLocalVars()
protected TableModel createDefaultDataModel()
DefaultTableModel
であるデフォルトのテーブル・モデル・オブジェクトを返します。サブクラスはこのメソッドをオーバーライドして、異なるテーブル・モデル・オブジェクトを返すことができます。DefaultTableModel
protected TableColumnModel createDefaultColumnModel()
DefaultTableColumnModel
であるデフォルトの列モデル・オブジェクトを返します。サブクラスはこのメソッドをオーバーライドして、異なる列モデル・オブジェクトを返すことができます。DefaultTableColumnModel
protected ListSelectionModel createDefaultSelectionModel()
DefaultListSelectionModel
であるデフォルトの選択モデル・オブジェクトを返します。サブクラスはこのメソッドをオーバーライドして、異なる選択モデル・オブジェクトを返すことができます。DefaultListSelectionModel
protected JTableHeader createDefaultTableHeader()
JTableHeader
であるデフォルトのテーブル・ヘッダー・オブジェクトを返します。サブクラスはこのメソッドをオーバーライドして、異なるテーブル・ヘッダー・オブジェクトを返すことができます。JTableHeader
protected void resizeAndRepaint()
revalidate
の後にrepaint
を呼び出すのと同等です。public TableCellEditor getCellEditor()
null
)を返します。TableCellEditor
。テーブルが現在編集中でない場合はnull
。cellEditor
, getCellEditor(int, int)
public void setCellEditor(TableCellEditor anEditor)
anEditor
- アクティブなセル・エディタcellEditor
public void setEditingColumn(int aColumn)
editingColumn
変数を設定します。aColumn
- 編集されるセルの列editingColumn
public void setEditingRow(int aRow)
editingRow
変数を設定します。aRow
- 編集されるセルの行editingRow
public 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
- 準備するTableCellRenderer
row
- レンダリングするセルの行。0は最初の行column
- レンダリングするセルの列。0は最初の列Component
public TableCellEditor getCellEditor(int row, int column)
row
とcolumn
によって指定されるセルの適切なエディタを返します。この列のTableColumn
がnull以外のエディタを持つ場合は、そのエディタを返します。そうでない場合は、getColumnClass
を使用してこの列のデータのクラスを見つけて、この型のデータのデフォルト・エディタを返します。
注: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してエディタを提供し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。
row
- 編集するセルの行。0は最初の行column
- 編集するセルの列。0は最初の列null
の場合、この型のセルのデフォルトのエディタを返すDefaultCellEditor
public Component prepareEditor(TableCellEditor editor, int row, int column)
row
、column
の位置にあるセルの値および選択状態をデータ・モデルに照会して、エディタを準備します。
注: テーブル・パッケージ全体を通して、内部実装は常にこのメソッドを使用してエディタを準備し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。
editor
- 設定するTableCellEditor
row
- 編集するセルの行。0は最初の行column
- 編集するセルの列。0は最初の列Component
public void removeEditor()
protected String paramString()
null
にはなりません。paramString
、クラス: JComponent
public 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
。ヘッダーがない場合はnull
footerFormat
- フッターの出力に使用されるテキストを示すMessageFormat
。フッターがない場合はnull
showPrintDialog
- 出力ダイアログを表示するかどうかattr
- 出力属性を示すPrintRequestAttributeSet
。出力属性がない場合はnull
interactive
- 対話型モードで出力するかどうか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
。ヘッダーがない場合はnull
footerFormat
- フッターの出力に使用されるテキストを示すMessageFormat
。フッターがない場合はnull
showPrintDialog
- 出力ダイアログを表示するかどうかattr
- 出力属性を示すPrintRequestAttributeSet
。出力属性がない場合はnull
interactive
- 対話型モードで出力するかどうかservice
- 出力先のPrintService
。デフォルトのプリンタを使用する場合はnull
HeadlessException
- メソッドが出力ダイアログを表示するか、対話型で実行するように求められ、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
。フッターがない場合はnullPrintable
print(JTable.PrintMode, MessageFormat, MessageFormat, boolean, PrintRequestAttributeSet, boolean)
, Printable
, PrinterJob
public AccessibleContext getAccessibleContext()
getAccessibleContext
、インタフェース: Accessible
getAccessibleContext
、クラス: Component
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.