|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.awt.Component | +--java.awt.Container | +--javax.swing.JComponent | +--javax.swing.JTable
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);
スタンドアロンビュー (JScrollPane
の外側) 内で JTable
を使用し、ヘッダを表示しようとする場合は、getTableHeader()
を使用してヘッダを取得して、別に表示します。
JTable
を使用するアプリケーションを設計する場合、テーブルのデータを表現するデータ構造に十分注意する必要があります。DefaultTableModel
は Object
の Vector
の Vector
を使用してセルの値を格納する実装のモデルです。アプリケーションから DefaultTableModel
にデータをコピーするとともに、上記の例のとおり、データが直接 JTable
に渡されるように、TableModel
インタフェースのメソッド内のデータをラップすることもできます。これにより、モデルがデータにもっとも適した内部表現を自由に選択できることから、いっそう効果的なアプリケーションを作成できます。AbstractTableModel
または DefaultTableModel
のどちらを使うかを決める大まかな指針では、サブクラスを作成するための基底クラスとして AbstractTableModel
が使用され、サブクラス化が不要な場合に DefaultTableModel
が使用されます。
ソースとして配布される demo 領域の「TableExample」ディレクトリは、多数の JTable
の使用方法に関する完全な例を提供します。この例には、データベースから取得するデータの編集可能なビューを提供するために JTable
を使用する方法や、特殊なレンダリングやエディタを使用するためにディスプレイ内の列を変更する方法などがあります。
JTable
は整数型を排他的に使って、それが表示するモデルの行と列をどちらも参照します。JTable
は単にタブ形式範囲のセルを取得して getValueAt(int, int)
を使い、描画時にモデルから値を取り出します。
デフォルトで、列は JTable
で配列し直されて、ビューの列がモデル内の列とは異なる順番で表示されるようになります。これは、モデルの実装にまったく影響を与えません。列の並べ替えを行うときは、JTable
は列の新しい順番を内部的に維持し、その列インデックスをモデルの照会前に変換します。
このため、TableModel
を記述するときは、ビューで何が起こっているかにかかわらずモデルはそれ自身の座標系で照会されるので、列並べ替えイベントに待機する必要はありません。examples 配下には、列ではなく行の順番を変更するもう 1 つの座標系を挿入するための、この方法を利用した並べ替えアルゴリズムのサンプルが用意されています。
すべての JComponent
クラスに関して、InputMap
と ActionMap
を使用して Action
オブジェクトと KeyStroke
を関連付け、指定した条件でアクションを実行できます。
標準の Look & Feel (L&F) 表現でこのコンポーネントが使用するキーボードのキーについては、「JTable
のキーの割り当て」を参照してください。
警告:
このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。現在の直列化のサポートは、短期間の運用や、同じバージョンの Swing を実行するアプリケーション間の RMI に適しています。JDK バージョン 1.4 以降、すべての JavaBeansTM の長期間の運用サポートは、java.beans
パッケージに追加されています。詳細は、XMLEncoder
を参照してください。
入れ子クラスの概要 | |
protected class |
JTable.AccessibleJTable
このクラスは JTable クラス用のユーザ補助機能のサポートを実装しています。 |
クラス javax.swing.JComponent から継承した入れ子クラス |
|
クラス java.awt.Container から継承した入れ子クラス |
|
クラス java.awt.Component から継承した入れ子クラス |
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
セルの内容を表示および編集するオブジェクトのテーブルです。 |
protected Hashtable |
defaultRenderersByColumnClass
セルの内容を表示するオブジェクトのテーブルです。 |
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 です。 |
クラス javax.swing.JComponent から継承したフィールド |
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
クラス java.awt.Component から継承したフィールド |
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
インタフェース java.awt.image.ImageObserver から継承したフィールド |
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 の値を表示する JTable を、列名 columnNames で構築します。 |
|
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 のテーブルモデル内の列のインデックスを、ビュー内の列のインデックスにマッピングします。 |
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 バージョン 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()
テーブルがデフォルトの列をモデルから作成するかどうかを指定します。 |
int |
getAutoResizeMode()
テーブルの自動サイズ変更モードを返します。 |
TableCellEditor |
getCellEditor()
セルエディタを返します。 |
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()
dragEnabled プロパティの値を返します。 |
int |
getEditingColumn()
現在編集中のセルを含む列のインデックスを返します。 |
int |
getEditingRow()
現在編集中のセルを含む行のインデックスを返します。 |
Component |
getEditorComponent()
編集セッションを処理しているコンポーネントを返します。 |
Color |
getGridColor()
グリッド線を描画するのに使う色を返します。 |
Dimension |
getIntercellSpacing()
セル間の水平間隔と垂直間隔を返します。 |
TableModel |
getModel()
この JTable が表示するデータを提供する TableModel を返します。 |
Dimension |
getPreferredScrollableViewportSize()
このテーブルのビューポートの望ましいサイズを返します。 |
int |
getRowCount()
このテーブルのモデル内の行数を返します。 |
int |
getRowHeight()
テーブル行の高さをピクセルで返します。 |
int |
getRowHeight(int row)
row のセルの高さをピクセル単位で返します。 |
int |
getRowMargin()
セルの間隔をピクセル単位で返します。 |
boolean |
getRowSelectionAllowed()
行を選択できる場合に true を返します。 |
int |
getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction)
このテーブルの方向によって visibleRect.height または visibleRect.width を返します。 |
boolean |
getScrollableTracksViewportHeight()
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 クラスの名前の構築に使用された接尾辞を返します。 |
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 の位置にあるセルの値および選択状態をデータモデルに照会して、レンダリングを準備します。 |
protected boolean |
processKeyBinding(KeyStroke ks,
KeyEvent e,
int condition,
boolean pressed)
KeyEvent e の結果として ks のキーバインドを処理するために呼び出されます。 |
void |
removeColumn(TableColumn aColumn)
aColumn をこの JTable の列配列から削除します。 |
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 |
setAutoResizeMode(int mode)
テーブルのサイズ変更時にテーブルの自動サイズ変更モードを設定します。 |
void |
setCellEditor(TableCellEditor anEditor)
cellEditor 変数を設定します。 |
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)
dragEnabled プロパティを設定します。 |
void |
setEditingColumn(int aColumn)
editingColumn 変数を設定します。 |
void |
setEditingRow(int aRow)
editingRow 変数を設定します。 |
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 |
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 |
setValueAt(Object aValue,
int row,
int column)
テーブルモデル内の row 、column に位置するセルの値を設定します。
|
void |
sizeColumnsToFit(boolean lastColumnOnly)
推奨されていません。 Swing バージョン 1.0.3 以降は、 doLayout() に置き換えられました。 |
void |
sizeColumnsToFit(int resizingColumn)
Java 2 プラットフォーム v1.4 では使用しません。 |
void |
tableChanged(TableModelEvent e)
このテーブルの TableModel が TableModelEvent を生成するときに呼び出されます。 |
protected void |
unconfigureEnclosingScrollPane()
囲み側スクロールペインの columnHeaderView を null に置き換えることによって、configureEnclosingScrollPane の効果を取り消します。 |
void |
updateUI()
L&F が変更されたという UIManager からの通知です。 |
void |
valueChanged(ListSelectionEvent e)
行の選択領域が変更されたときに呼び出され、ペイントし直して新しい選択領域を示します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
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
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
を構築します。
createDefaultDataModel()
,
createDefaultColumnModel()
,
createDefaultSelectionModel()
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 JTable(Object[][] rowData, Object[] columnNames)
rowData
の値を表示する JTable
を、列名 columnNames
で構築します。rowData
は行の配列なので、行 1、列 5 に位置するセルの値は次のコードで取得できます。
rowData[1][5];
すべての行は、columnNames
と同じ長さでなければなりません。
rowData
- 新しいテーブルのデータcolumnNames
- 各列の名前メソッドの詳細 |
public void addNotify()
configureEnclosingScrollPane
メソッドを呼び出します。
JComponent
内の addNotify
configureEnclosingScrollPane()
protected void configureEnclosingScrollPane()
JTable
が囲み側 JScrollPane
の viewportView
ですが、その場合、特にテーブルの tableHeader
をスクロールペインの columnHeaderView
としてインストールすることによって、この ScrollPane
の設定を行います。new JScrollPane(myTable)
を使って通常の方法で JTable
を JScrollPane
に追加すると、テーブルがビューポートに追加されるときに addNotify
が JTable
で呼び出されます。次に JTable
の addNotify
メソッドがこのメソッドを呼び出します。このメソッドは、デフォルトのインストールプロシージャをサブクラスがオーバーライドできるように保護されています。
addNotify()
public void removeNotify()
unconfigureEnclosingScrollPane
メソッドを呼び出します。
JComponent
内の removeNotify
unconfigureEnclosingScrollPane()
protected void unconfigureEnclosingScrollPane()
columnHeaderView
を null
に置き換えることによって、configureEnclosingScrollPane
の効果を取り消します。JTable
の removeNotify
メソッドがこのメソッドを呼び出します。このメソッドは、このデフォルトのインストール解除プロシージャをサブクラスがオーバーライドできるように保護されています。
removeNotify()
,
configureEnclosingScrollPane()
public static JScrollPane createScrollPaneForTable(JTable aTable)
new JScrollPane(aTable)
に置き換えられました。
new JScrollPane(aTable)
と同等です。
public void setTableHeader(JTableHeader tableHeader)
JTable
の tableHeader
を newHeader
に設定します。null
の tableHeader
は有効です。
getTableHeader()
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)
mode
- 次の 5 つの有効値の 1 つ: 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
メソッドを使って、データモデルからテーブルのデフォルトの列を作成します。
モデルからの情報に基づいて新しい列を作成する前に、既存の列があればそれをクリアします。
getAutoCreateColumnsFromModel()
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)
dragEnabled
プロパティを設定します。このプロパティは、このコンポーネントの自動ドラッグ処理 (ドラッグ&ドロップの最初の処理) を有効にするために true
でなければなりません。transferHandler
プロパティは、ドラッグで何でもできるように null
以外の値に設定する必要があります。dragEnabled
プロパティのデフォルトの値は false
です。
自動ドラッグ処理が有効の場合、ほとんどの Look & Feel は、ユーザが選択のためにマウスボタンを押して、マウスを数ピクセル移動すると常にドラッグ&ドロップ操作が始まります。したがって、このプロパティを true
に設定することは、選択の動作に微妙な効果があります。
一部の Look & Feel は自動ドラッグ&ドロップ操作をサポートしない場合があります。これらはこのプロパティを無視します。直接 TransferHandler
の exportAsDrag
メソッドを呼び出してコンポーネントを変更することにより、このような Look & Feel を操作することができます。
b
- dragEnabled
プロパティに設定される値
HeadlessException
- b
が true
の場合で GraphicsEnvironment.isHeadless()
が true
を返す場合GraphicsEnvironment.isHeadless()
,
getDragEnabled()
,
JComponent.setTransferHandler(javax.swing.TransferHandler)
,
TransferHandler
public boolean getDragEnabled()
dragEnabled
プロパティの値を返します。
dragEnabled
プロパティの値setDragEnabled(boolean)
public void setSelectionMode(int selectionMode)
JTable
は、列と行の選択を処理するすべてのメソッドを提供します。setSelectionMode
などの状態を設定する際、JTable
は行選択モデルのモードを更新するだけでなく、columnModel
の選択モデルで同様の値を設定します。行および列の選択モデルを別々のモードで機能させるには、それらを両方とも直接設定します。
JTable
の行選択モデルと列選択モデルはどちらともデフォルトで DefaultListSelectionModel
を使うので、JTable
は JList
と同じように動作します。モードの詳細は、JList
の setSelectionMode
を参照してください。
JList.setSelectionMode(int)
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
- 行と列の同時選択を許可する場合に true を返します。getCellSelectionEnabled()
,
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 は最初の行
IllegalArgumentException
- row
が有効な範囲にない場合public boolean isColumnSelected(int column)
column
- 列モデルの列
column
の列が選択されている場合は true。0 は最初の列
IllegalArgumentException
- column
が有効な範囲にない場合public boolean isCellSelected(int row, int column)
row
- 照会される行column
- 照会される列
(row, column)
のセルが選択されている場合は true。最初の行と最初の列はインデックス 0 にある
IllegalArgumentException
- row
または column
が有効な範囲にない場合public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
toggle
と extend
の 2 つのフラグの状態によって、テーブルの選択モデルを更新します。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
の場合、またはこの識別子を持つ 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 getRowCount()
getColumnCount()
public int getColumnCount()
getRowCount()
,
removeColumn(javax.swing.table.TableColumn)
public String getColumnName(int column)
column
のビューに表示される列の名前を返します。
column
- 照会されるビューの列
column
位置の列名。最初の列は column 0public Class getColumnClass(int column)
column
のビューに表示される列の型を返します。
column
- 照会されるビューの列
column
位置の列の型。最初の列は column 0public 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)
aColumn
をこの JTable
の列配列から削除します。注: このメソッドは、モデルから列のデータを削除することはありません。列のデータの表示を行なっていた 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
パラメータは無視されます。
includeSpacing
- false の場合、真のセルの境界を返す。この境界は、列モデルと行モデルの高さと幅からセルの間隔を引くことによって計算される
row
、column
の位置のセルを保持する矩形public void doLayout()
JTable
のすべての列の全幅がテーブルの幅と等しくなるようにします。
配置が開始される前に、メソッドは 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] の範囲外の場合、このアルゴリズムによってすべてのサイズがそれぞれの適切な最大値または最小値の制限値に設定されます。
Container
内の doLayout
LayoutManager.layoutContainer(java.awt.Container)
,
Container.setLayout(java.awt.LayoutManager)
,
Container.validate()
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)
を通知すると、テーブルコンポーネントを登録解除するので、レンダリングからのヒントはそれ以上表示されません。
JComponent
内の getToolTipText
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
- 編集する列
IllegalArgumentException
- 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
の呼び出しは行われない
IllegalArgumentException
- row
または column
が有効な範囲にない場合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
からの最新バージョンに置き換えます。
JComponent
内の updateUI
JComponent.updateUI()
public String getUIClassID()
JComponent
内の getUIClassID
JComponent.getUIClassID()
,
UIDefaults.getUI(javax.swing.JComponent)
public void setModel(TableModel dataModel)
newModel
に設定し、それに新しいデータモデルからのリスナー通知を登録します。
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 tableChanged(TableModelEvent e)
TableModel
が TableModelEvent
を生成するときに呼び出されます。TableModelEvent
はモデルの座標系で構築され、イベント受信時に JTable
がビュー座標系への適切なマッピングを実行します。
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable
が内部的に使用します。
JDK バージョン 1.3 では、このメソッドは、必要に応じて選択状態が解除されます。
TableModelListener
内の tableChanged
public void columnAdded(TableColumnModelEvent e)
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable が内部的に使用します。
TableColumnModelListener
内の columnAdded
TableColumnModelListener
public void columnRemoved(TableColumnModelEvent e)
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable が内部的に使用します。
TableColumnModelListener
内の columnRemoved
TableColumnModelListener
public void columnMoved(TableColumnModelEvent e)
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable が内部的に使用します。
TableColumnModelListener
内の columnMoved
e
- 受け取ったイベントTableColumnModelListener
public void columnMarginChanged(ChangeEvent e)
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable が内部的に使用します。
TableColumnModelListener
内の columnMarginChanged
e
- 受け取ったイベントTableColumnModelListener
public void columnSelectionChanged(ListSelectionEvent e)
TableColumnModel
の選択モデルが変更されるときに呼び出されます。
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable が内部的に使用します。
TableColumnModelListener
内の columnSelectionChanged
e
- 受け取ったイベントTableColumnModelListener
public void valueChanged(ListSelectionEvent e)
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable が内部的に使用します。
ListSelectionListener
内の valueChanged
e
- 受け取ったイベントListSelectionListener
public void editingStopped(ChangeEvent e)
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable が内部的に使用します。
CellEditorListener
内の editingStopped
e
- 受け取ったイベントCellEditorListener
public void editingCanceled(ChangeEvent e)
アプリケーションコードはこれらのメソッドを明示的には使用しません。これらのメソッドは JTable が内部的に使用します。
CellEditorListener
内の editingCanceled
e
- 受け取ったイベントCellEditorListener
public void setPreferredScrollableViewportSize(Dimension size)
size
- ビューがこのテーブルである JViewport
の preferredSize
を指定する Dimension
オブジェクトScrollable.getPreferredScrollableViewportSize()
public Dimension getPreferredScrollableViewportSize()
Scrollable
内の getPreferredScrollableViewportSize
JViewport
の preferredSize
を保持する Dimension
オブジェクトScrollable.getPreferredScrollableViewportSize()
public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
このメソッドは、ユーザが単位スクロールを要求するたびに呼び出されます。
Scrollable
内の getScrollableUnitIncrement
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) からは、返される値によってビューポイントが行の境界に明確に配置されるようになりました。
Scrollable
内の getScrollableBlockIncrement
visibleRect
- ビューポート内の可視のビュー領域orientation
- SwingConstants.VERTICAL または SwingConstants.HORIZONTALdirection
- 上または左にスクロールする場合は 0 より小さく、下または右にスクロールする場合は 0 より大きい
visibleRect.height
または visibleRect.width
Scrollable.getScrollableBlockIncrement(java.awt.Rectangle, int, int)
public boolean getScrollableTracksViewportWidth()
autoResizeMode
が AUTO_RESIZE_OFF
に設定されている場合は false を返します。これはビューポートの幅がテーブルの幅を決定しないことを示します。それ以外の場合は true を返します。
Scrollable
内の getScrollableTracksViewportWidth
autoResizeMode
が AUTO_RESIZE_OFF
に設定されている場合は false、そうでない場合は trueScrollable.getScrollableTracksViewportWidth()
public boolean getScrollableTracksViewportHeight()
Scrollable
内の getScrollableTracksViewportHeight
Scrollable.getScrollableTracksViewportHeight()
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
JComponent
の記述: KeyEvent
e
の結果として ks
のキーバインドを処理するために呼び出されます。このメソッドは適切な InputMap
、そのバインディング、ActionMap
のアクションを取得して、(アクションが見つかり、受信側が有効な場合) アクションを通知するために notifyAction
を呼び出します。
JComponent
内の processKeyBinding
ks
- 照会する KeyStroke
e
- KeyEvent
condition
- 次のどれか。pressed
- キーが押されている場合は true
protected 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()
TableCellEditor
cellEditor
public void setCellEditor(TableCellEditor anEditor)
cellEditor
変数を設定します。
anEditor
- 編集を行う TableCellEditorcellEditor
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
) を返します。
注: テーブルパッケージ全体を通して、内部実装は常にこのメソッドを使ってレンダリングを準備し、このデフォルトの動作をサブクラスが安全にオーバーライドできるようにします。
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
にはなりません。
JComponent
内の paramString
public AccessibleContext getAccessibleContext()
Accessible
内の getAccessibleContext
JComponent
内の getAccessibleContext
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.