|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.swing.RowSorter<M>
M - 配下のモデルのタイプpublic abstract class RowSorter<M>
RowSorter は、ソートとフィルタの基盤を提供します。作成時やインストール時以外に、RowSorter と直接対話する必要はほとんどありません。JTable の RowSorter の具象実装については、TableRowSorter を参照してください。
RowSorter の基本機能は、ビュー (JTable など) の座標系と配下のデータソース (通常はモデル) の座標系の間でマッピングを行うことです。
ビューは、RowSorter 上で次のメソッドを呼び出します。
toggleSortOrder 適切なユーザージェスチャーが発生してソートがトリガーされたときにビューにより呼び出されます。たとえば、ユーザーがテーブル内の列ヘッダーをクリックしたときなどに呼び出されます。
RowSorter はマッピングを更新するべきではありません。
convertRowIndexToModel メソッド、convertRowIndexToView メソッド、および getViewRowCount メソッドを非常によく使用するので、これらのメソッドは高速である必要があります。
RowSorterEvent は、RowSorterListener を使って変更の通知を行います。通知には、次の 2 種類があります。
RowSorterEvent.Type.SORT_ORDER_CHANGED ソート順序が変更されたことをリスナーに通知します。通常、このあとに、ソートが変更されたという通知が送信されます。
RowSorterEvent.Type.SORTED RowSorter が管理しているマッピングが変更されたことをリスナーに通知します。
RowSorter 実装と配下のモデルのマッピングは、通常、1 対 1 にはなっていませんが、1 対 1 にすることも可能です。たとえば、ソートを行うデータベースは、バックグラウンドスレッド上で toggleSortOrder を呼び出します。このメソッドは、マッピングメソッドをオーバーライドして、渡された引数を返します。
RowSorter の具象実装は、TableModel、ListModel などのモデルを参照する必要があります。JTable や JList などのビュークラスも、モデルを参照します。順序の依存性を回避するため、RowSorter 実装がモデル上にリスナーをインストールしないようにしてください。モデルが変更されると、ビュークラスが RowSorter を呼び出します。たとえば、TableModel JTable で行が更新された場合、rowsUpdated が呼び出されます。モデルが変更されると、ビューは、modelStructureChanged、allRowsChanged、rowsInserted、rowsDeleted、rowsUpdated のいずれかのメソッドを呼び出します。
TableRowSorter| 入れ子のクラスの概要 | |
|---|---|
static class |
RowSorter.SortKey
SortKey は、特定の列のソート順序を記述します。 |
| コンストラクタの概要 | |
|---|---|
RowSorter()
RowSorter を作成します。 |
|
| メソッドの概要 | |
|---|---|
void |
addRowSorterListener(RowSorterListener l)
この RowSorter に関する通知を受け取る RowSorterListener を追加します。 |
abstract void |
allRowsChanged()
配下のモデルのコンテンツが完全に変更された場合に呼び出されます。 |
abstract int |
convertRowIndexToModel(int index)
配下のモデルの index の位置を返します。 |
abstract int |
convertRowIndexToView(int index)
ビューの index の位置を返します。 |
protected void |
fireRowSorterChanged(int[] lastRowIndexToModel)
マッピングが変更されたことをリスナーに通知します。 |
protected void |
fireSortOrderChanged()
ソート順序が変更されたことをリスナーに通知します。 |
abstract M |
getModel()
配下のモデルを返します。 |
abstract int |
getModelRowCount()
配下のモデルの行数を返します。 |
abstract List<? extends RowSorter.SortKey> |
getSortKeys()
現在のソートキーを返します。 |
abstract int |
getViewRowCount()
ビュー内の行数を返します。 |
abstract void |
modelStructureChanged()
配下のモデルの構造が完全に変更された場合に呼び出されます。 |
void |
removeRowSorterListener(RowSorterListener l)
RowSorterListener を削除します。 |
abstract void |
rowsDeleted(int firstRow,
int endRow)
配下のモデルの指定された範囲 (上限値と下限値を含む) から行が削除された場合に呼び出されます。 |
abstract void |
rowsInserted(int firstRow,
int endRow)
配下のモデルの指定された範囲 (上限値と下限値を含む) に行が挿入された場合に呼び出されます。 |
abstract void |
rowsUpdated(int firstRow,
int endRow)
配下のモデルの指定された範囲 (上限値と下限値を含む) で行が変更された場合に呼び出されます。 |
abstract void |
rowsUpdated(int firstRow,
int endRow,
int column)
配下のモデルの指定された範囲で行内の列が更新された場合に呼び出されます。 |
abstract void |
setSortKeys(List<? extends RowSorter.SortKey> keys)
現在のソートキーを設定します。 |
abstract void |
toggleSortOrder(int column)
指定された列のソート順序を逆にします。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public RowSorter()
RowSorter を作成します。
| メソッドの詳細 |
|---|
public abstract M getModel()
public abstract void toggleSortOrder(int column)
このメソッドによってソート順序が変更され、ソートが行われる場合は、適切な RowSorterListener 通知が送信されます。
column - 配下のモデルに基づいて、 ソート順序を切り替える列
IndexOutOfBoundsException - column が配下のモデルの範囲外である場合public abstract int convertRowIndexToModel(int index)
index の位置を返します。ビューの座標の行 index の場合、配下のモデルの行インデックスを返します。
index - 配下のビューの行インデックス
IndexOutOfBoundsException - index がビューの範囲外にある場合public abstract int convertRowIndexToView(int index)
index の位置を返します。配下のモデルの座標の行 index の場合、ビューの行インデックスを返します。
index - 配下のモデルの行インデックス
IndexOutOfBoundsException - index がモデルの範囲外にある場合public abstract void setSortKeys(List<? extends RowSorter.SortKey> keys)
keys - 新規の SortKeys。 空のリスト (このビューではソートを行わないことを示す) を 指定する場合は nullpublic abstract List<? extends RowSorter.SortKey> getSortKeys()
null でない List を返します。さらに、変更不可能な List を返すこともあります。ソートキーを変更する必要がある場合は、返された List のコピーを作成し、このコピーを変更して作成した新しいリストを使って、setSortKeys を呼び出します。
public abstract int getViewRowCount()
getModelRowCount()public abstract int getModelRowCount()
getViewRowCount()public abstract void modelStructureChanged()
TableModel で列数が変更された場合に、このメソッドが呼び出されます。
通常、ユーザーがこのメソッドを呼び出すことはありません。このメソッドは、ビュークラスから呼び出せるように public になっています。
public abstract void allRowsChanged()
通常、ユーザーがこのメソッドを呼び出すことはありません。このメソッドは、ビュークラスから呼び出せるように public になっています。
public abstract void rowsInserted(int firstRow,
int endRow)
対象となる範囲のインデックスは、引数で指定します。第 1 の引数は、変更前のモデルを基にしており、変更前のモデルのサイズ以下である必要があります。第 2 の引数は、変更後のモデルを基にしており、変更後のモデルのサイズ未満である必要があります。たとえば 5 行のモデルの末尾に 3 項目を追加する場合、インデックスは 5,7 になります。
通常、ユーザーがこのメソッドを呼び出すことはありません。このメソッドは、ビュークラスから呼び出せるように public になっています。
firstRow - 最初の行endRow - 最後の行
IndexOutOfBoundsException - いずれかの引数が無効である場合、または firstRow が endRow よりも大きい場合
public abstract void rowsDeleted(int firstRow,
int endRow)
対象となる範囲のインデックスは、変更前のモデルを表す引数で指定します。たとえば 5 行のモデルの末尾から 3 項目を削除する場合、インデックスは 2,4 になります。
通常、ユーザーがこのメソッドを呼び出すことはありません。このメソッドは、ビュークラスから呼び出せるように public になっています。
firstRow - 最初の行endRow - 最後の行
IndexOutOfBoundsException - どちらかの引数が変更前のモデルの範囲外にある場合、または firstRow のほうが endRow より大きい場合
public abstract void rowsUpdated(int firstRow,
int endRow)
通常、ユーザーがこのメソッドを呼び出すことはありません。このメソッドは、ビュークラスから呼び出せるように public になっています。
firstRow - 配下のモデルの最初の行endRow - 配下のモデルの最後の行
IndexOutOfBoundsException - どちらかの引数が配下のモデルの範囲外にある場合、または firstRow のほうが endRow より大きい場合
public abstract void rowsUpdated(int firstRow,
int endRow,
int column)
通常、ユーザーがこのメソッドを呼び出すことはありません。このメソッドは、ビュークラスから呼び出せるように public になっています。
firstRow - 配下のモデルの最初の行endRow - 配下のモデルの最後の行column - 配下のモデルに基づいて、 変更した列
IndexOutOfBoundsException - どちらかの引数が変更後の配下のモデルの範囲外にある場合、firstRow のほうが endRow より大きい場合、または column が配下のモデルの範囲外にある場合public void addRowSorterListener(RowSorterListener l)
RowSorter に関する通知を受け取る RowSorterListener を追加します。同じリスナーを複数追加した場合、複数の通知を受け取ることになります。l が null の場合、何も行われません。
l - RowSorterListenerpublic void removeRowSorterListener(RowSorterListener l)
RowSorterListener を削除します。l が null の場合、何も行われません。
l - RowSorterListenerprotected void fireSortOrderChanged()
protected void fireRowSorterChanged(int[] lastRowIndexToModel)
lastRowIndexToModel - ソート前のモデルインデックスからビューインデックスへのマッピング (null の場合もある)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。