- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- javafx.collections.ObservableListBase<E>
-
- 型パラメータ:
E
- リストに含まれる要素の型
- すべての実装されたインタフェース:
Iterable<E>
,Collection<E>
,List<E>
,Observable
,ObservableList<E>
- 直系の既知のサブクラス:
ModifiableObservableListBase
,TransformationList
public abstract class ObservableListBase<E> extends AbstractList<E> implements ObservableList<E>
ObservableList
実装のベース・クラスとして役立つ抽象クラス。 ベース・クラスは、クラスを実装する2つの機能を提供します。-
addListener
メソッドおよびremoveListener
メソッドの実装によるリスナー処理。Change
オブジェクトを使用してリスナーに通知するためのfireChange(javafx.collections.ListChangeListener.Change)
メソッドが提供されます。 -
ListChangeListener.Change
オブジェクトを作成するメソッド。next*
と呼ばれる様々なメソッドがあります。たとえば、リストに新しいアイテムを追加するnextAdd(int, int)
、またはリストからアイテムを削除するnextRemove(int, java.lang.Object)
などです。これらのメソッドは、常に
beginChange()
とendChange()
ブロックで囲む必要があります。次の例を参照してください。
public void removeOddIndexes() { beginChange(); try { for (int i = 1; i < size(); ++i) { remove(i); } } finally { endChange(); } } public void remove(int i) { beginChange(); try { E removed = ... //do some stuff that will actually remove the element at index i nextRemove(i, removed); } finally { endChange(); } }
例のtry
/finally
ブロックは、beginChange()
/endChange()
ブロック内で例外が発生する可能性がある場合のみ必要となります。注意: 変更可能な
ObservableList
実装を作成する場合は、ModifiableObservableListBase
をスーパークラスとして使用することを検討してください。ノート: シーケンシャル・アクセスでリストを作成するには、
AbstractList.listIterator()
、AbstractList.iterator()
メソッドをオーバーライドし、それに応じてAbstractList.get(int)
、Collection.size()
などのメソッドで使用する必要があります。- 導入されたバージョン:
- JavaFX 8.0
- 関連項目:
ObservableList
,ListChangeListener.Change
,ModifiableObservableListBase
-
-
フィールドのサマリー
-
クラス java.util.AbstractListで宣言されたフィールド
modCount
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 ObservableListBase()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 protected void
beginChange()
変更ブロックを開始します。protected void
endChange()
変更ブロックを終了します。protected void
fireChange(ListChangeListener.Change<? extends E> change)
すべてのリスナーに変更を通知します。protected boolean
hasListeners()
このリストに登録されているリスナーがある場合はtrueを返します。protected void
nextAdd(int from, int to)
新しい追加操作を変更に追加します。protected void
nextPermutation(int from, int to, int[] perm)
新しい順列操作を変更に追加します。protected void
nextRemove(int idx, E removed)
新しい削除操作を単一のアイテムを削除する変更に追加します。protected void
nextRemove(int idx, List<? extends E> removed)
新しい削除操作を複数のアイテムを削除する変更に追加します。protected void
nextReplace(int from, int to, List<? extends E> removed)
新しい置換操作を変更に追加します。protected void
nextSet(int idx, E old)
新しい設定操作を変更に追加します。protected void
nextUpdate(int pos)
新しい更新操作を変更に追加します。-
クラス java.util.AbstractCollectionで宣言されたメソッド
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
-
クラス java.util.AbstractListで宣言されたメソッド
add, add, addAll, clear, equals, get, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subList
-
インタフェース java.util.Collectionで宣言されたメソッド
parallelStream, removeIf, stream
-
インタフェース java.util.Listで宣言されたメソッド
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray
-
インタフェース javafx.beans.Observableで宣言されたメソッド
addListener、removeListener
-
インタフェース javafx.collections.ObservableListで宣言されたメソッド
addAll, addListener, filtered, remove, removeAll, removeListener, retainAll, setAll, setAll, sorted, sorted
-
-
-
-
メソッドの詳細
-
nextUpdate
protected final void nextUpdate(int pos)
新しい更新操作を変更に追加します。注意:
beginChange()
/endChange()
ブロック内で呼び出す必要があります。注意: リストの現在の状態を反映する必要があります。
- パラメータ:
pos
- 更新された要素が存在するリスト内の位置。
-
nextSet
protected final void nextSet(int idx, E old)
新しい設定操作を変更に追加します。nextRemove(idx); nextAdd(idx, idx + 1);
と同等です。注意:
beginChange()
/endChange()
ブロック内で呼び出す必要があります。注意: リストの現在の状態を反映する必要があります。
- パラメータ:
idx
- 設定されたアイテムの索引。old
-idx
位置にある古い値。
-
nextReplace
protected final void nextReplace(int from, int to, List<? extends E> removed)
新しい置換操作を変更に追加します。nextRemove(from, removed); nextAdd(from, to);
と同等です。注意:
beginChange()
/endChange()
ブロック内で呼び出す必要があります。注意: リストの現在の状態を反映する必要があります。
- パラメータ:
from
- アイテムが置換された索引to
- 新しいアイテムが存在する範囲の最後の索引(これを含まない)removed
- 削除されたアイテムのリスト
-
nextRemove
protected final void nextRemove(int idx, List<? extends E> removed)
新しい削除操作を複数のアイテムを削除する変更に追加します。注意:
beginChange()
/endChange()
ブロック内で呼び出す必要があります。注意: リストの現在の状態を反映する必要があります。
- パラメータ:
idx
- アイテムが削除された索引removed
- 削除されたアイテムのリスト
-
nextRemove
protected final void nextRemove(int idx, E removed)
新しい削除操作を単一のアイテムを削除する変更に追加します。注意:
beginChange()
/endChange()
ブロック内で呼び出す必要があります。注意: リストの現在の状態を反映する必要があります。
- パラメータ:
idx
- アイテムが削除された索引removed
- 削除されたアイテム
-
nextPermutation
protected final void nextPermutation(int from, int to, int[] perm)
新しい順列操作を変更に追加します。 索引"i"
の順列には、索引"i"
のアイテムが移動された索引が含まれます。最小順列を指定する必要はありません。 常に
nextPermutation(0, size(), permutation);
を使用してこのメソッドを呼び出すことが適切です。注意:
beginChange()
/endChange()
ブロック内で呼び出す必要があります。注意: リストの現在の状態を反映する必要があります。
- パラメータ:
from
- 順序が変更された範囲の最初(これを含む)をマークします。to
- 順序が変更された範囲の最後(これを含まない)をマークします。perm
- 該当する範囲の順列。from != 0
の場合でも、配列にはリストの索引を含める必要があります。 このため、そのような順列には範囲(0, from)
の索引は含めません。
-
nextAdd
protected final void nextAdd(int from, int to)
新しい追加操作を変更に追加します。 指定された索引にあるリストでアイテムを直接見つけることができるため、追加されたアイテムのリストを指定する必要はありません。注意:
beginChange()
/endChange()
ブロック内で呼び出す必要があります。注意: リストの現在の状態を反映する必要があります。
- パラメータ:
from
- 追加された範囲の最初(これを含む)をマークしますto
- 追加された範囲の最後(これを含まない)をマークします
-
beginChange
protected final void beginChange()
変更ブロックを開始します。next*
メソッドを呼び出す前に呼び出す必要があります。 各beginChange()
には、対応するendChange()
呼出しが必要です。beginChange()
呼出しは、beginChange()
/endChange()
ブロックにネストできます。- 関連項目:
endChange()
-
endChange
protected final void endChange()
変更ブロックを終了します。 このブロックがObservableList
の最も外側のブロックの場合、Change
が作成され、すべてのリスナーに通知されます。ネストされたブロックを終了すると、通知は起動されません。
- 関連項目:
beginChange()
-
fireChange
protected final void fireChange(ListChangeListener.Change<? extends E> change)
すべてのリスナーに変更を通知します。- パラメータ:
change
- 行われた変更を表すオブジェクト
-
hasListeners
protected final boolean hasListeners()
このリストに登録されているリスナーがある場合はtrueを返します。- 戻り値:
- このリストのリスナーがある場合はtrue
-
-