モジュール javafx.controls
パッケージ javafx.scene.control.skin

クラスVirtualFlow<T extends IndexedCell>

  • すべての実装されたインタフェース:
    Styleable, EventTarget

    public class VirtualFlow<T extends IndexedCell>
    extends Region
    セル・ベースのメカニズムを使用した仮想化コンテナの実装。 これは、ListViewTreeViewTableViewTreeTableViewなどのUIコントロールのスキン実装で使用されます。
    導入されたバージョン:
    9
    • プロパティの詳細

      • vertical

        public final BooleanProperty verticalProperty
        仮想化の主な方向を示します。 trueの場合、仮想化の主な方向は垂直です。つまり、セルは互いに垂直に積み重ねられます。 falseの場合、それらは互いに水平に積み重なります。
        関連項目:
        isVertical(), setVertical(boolean)
      • pannable

        public final BooleanProperty pannableProperty
        VirtualFlowビューポートがユーザー(マウスまたはタッチ・イベントを介して)によってパンされることができるかどうかを示します。
        関連項目:
        isPannable()setPannable(boolean)
      • cellCount

        public final IntegerProperty cellCountProperty
        フローに含めるセルの数を示します。 VirtualFlowのユーザーはこれを適切に設定する必要があります。 セル数が変化すると、VirtualFlowはビジュアルを更新して応答します。 セルのバッキング・アイテムが変更されたが、カウントが変更されていない場合は、reconfigureCells()関数を呼び出してビジュアルを更新する必要があります。
        関連項目:
        getCellCount(), setCellCount(int)
      • fixedCellSize

        public final DoubleProperty fixedCellSizeProperty
        最適化のために、いくつかのユースケースではダイナミック・セルの長さをスピード - fixedCellSizeがゼロより大きい場合は、セル自体を問合せすることで判定するのではなく、その値を使用します。
        関連項目:
        getFixedCellSize()setFixedCellSize(double)
      • cellFactory

        public final ObjectProperty<Callback<VirtualFlow<T extends IndexedCell>,T extends IndexedCell>> cellFactoryProperty

        カスタム・セル・ファクトリを設定すると、すべてのセル作成を遅延する効果があり、セルのすべてのカスタマイズが許可されます。 内部的には、VirtualFlowはセルの再利用を担当しています - 必要なのは、カスタム・セル・ファクトリがVirtualFlow内のアイテムを表すのに使用できるセルをこの関数から返すことだけです。

        詳細は、Cellクラスのドキュメントを参照してください。

        関連項目:
        getCellFactory()setCellFactory(Callback)
    • コンストラクタの詳細

      • VirtualFlow

        public VirtualFlow()
        新しいVirtualFlowインスタンスを作成します。
    • メソッドの詳細

      • setVertical

        public final void setVertical​(boolean value)
        プロパティverticalの値を設定します。
        プロパティの説明:
        仮想化の主な方向を示します。 trueの場合、仮想化の主な方向は垂直です。つまり、セルは互いに垂直に積み重ねられます。 falseの場合、それらは互いに水平に積み重なります。
      • isVertical

        public final boolean isVertical()
        プロパティverticalの値を取得します。
        プロパティの説明:
        仮想化の主な方向を示します。 trueの場合、仮想化の主な方向は垂直です。つまり、セルは互いに垂直に積み重ねられます。 falseの場合、それらは互いに水平に積み重なります。
      • verticalProperty

        public final BooleanProperty verticalProperty()
        仮想化の主な方向を示します。 trueの場合、仮想化の主な方向は垂直です。つまり、セルは互いに垂直に積み重ねられます。 falseの場合、それらは互いに水平に積み重なります。
        関連項目:
        isVertical(), setVertical(boolean)
      • isPannable

        public final boolean isPannable()
        プロパティpannableの値を取得します。
        プロパティの説明:
        VirtualFlowビューポートがユーザー(マウスまたはタッチ・イベントを介して)によってパンされることができるかどうかを示します。
      • setPannable

        public final void setPannable​(boolean value)
        プロパティpannableの値を設定します。
        プロパティの説明:
        VirtualFlowビューポートがユーザー(マウスまたはタッチ・イベントを介して)によってパンされることができるかどうかを示します。
      • pannableProperty

        public final BooleanProperty pannableProperty()
        VirtualFlowビューポートがユーザー(マウスまたはタッチ・イベントを介して)によってパンされることができるかどうかを示します。
        関連項目:
        isPannable()setPannable(boolean)
      • getCellCount

        public final int getCellCount()
        プロパティcellCountの値を取得します。
        プロパティの説明:
        フローに含めるセルの数を示します。 VirtualFlowのユーザーはこれを適切に設定する必要があります。 セル数が変化すると、VirtualFlowはビジュアルを更新して応答します。 セルのバッキング・アイテムが変更されたが、カウントが変更されていない場合は、reconfigureCells()関数を呼び出してビジュアルを更新する必要があります。
      • setCellCount

        public final void setCellCount​(int value)
        プロパティcellCountの値を設定します。
        プロパティの説明:
        フローに含めるセルの数を示します。 VirtualFlowのユーザーはこれを適切に設定する必要があります。 セル数が変化すると、VirtualFlowはビジュアルを更新して応答します。 セルのバッキング・アイテムが変更されたが、カウントが変更されていない場合は、reconfigureCells()関数を呼び出してビジュアルを更新する必要があります。
      • cellCountProperty

        public final IntegerProperty cellCountProperty()
        フローに含めるセルの数を示します。 VirtualFlowのユーザーはこれを適切に設定する必要があります。 セル数が変化すると、VirtualFlowはビジュアルを更新して応答します。 セルのバッキング・アイテムが変更されたが、カウントが変更されていない場合は、reconfigureCells()関数を呼び出してビジュアルを更新する必要があります。
        関連項目:
        getCellCount(), setCellCount(int)
      • getPosition

        public final double getPosition()
        プロパティpositionの値を取得します。
        プロパティの説明:
        そのセル・リスト内のVirtualFlowの位置。 これは0と1の間の値です。
      • setPosition

        public final void setPosition​(double value)
        プロパティpositionの値を設定します。
        プロパティの説明:
        そのセル・リスト内のVirtualFlowの位置。 これは0と1の間の値です。
      • setFixedCellSize

        public final void setFixedCellSize​(double value)
        プロパティfixedCellSizeの値を設定します。
        プロパティの説明:
        最適化のために、いくつかのユースケースではダイナミック・セルの長さをスピード - fixedCellSizeがゼロより大きい場合は、セル自体を問合せすることで判定するのではなく、その値を使用します。
      • getFixedCellSize

        public final double getFixedCellSize()
        プロパティfixedCellSizeの値を取得します。
        プロパティの説明:
        最適化のために、いくつかのユースケースではダイナミック・セルの長さをスピード - fixedCellSizeがゼロより大きい場合は、セル自体を問合せすることで判定するのではなく、その値を使用します。
      • fixedCellSizeProperty

        public final DoubleProperty fixedCellSizeProperty()
        最適化のために、いくつかのユースケースではダイナミック・セルの長さをスピード - fixedCellSizeがゼロより大きい場合は、セル自体を問合せすることで判定するのではなく、その値を使用します。
        関連項目:
        getFixedCellSize()setFixedCellSize(double)
      • setCellFactory

        public final void setCellFactory​(Callback<VirtualFlow<T>,T> value)
        VirtualFlowで使用する新しいセル・ファクトリを設定します。 これにより、すべての古いセルが強制的に破棄され、新しいセルが新しいセル・ファクトリで作成されます。
        パラメータ:
        value - 新しいセル・ファクトリ
      • getCellFactory

        public final Callback<VirtualFlow<T>,T> getCellFactory()
        現在のセル・ファクトリを返します。
        戻り値:
        現在のセル・ファクトリ
      • cellFactoryProperty

        public final ObjectProperty<Callback<VirtualFlow<T>,T>> cellFactoryProperty()

        カスタム・セル・ファクトリを設定すると、すべてのセル作成を遅延する効果があり、セルのすべてのカスタマイズが許可されます。 内部的には、VirtualFlowはセルの再利用を担当しています - 必要なのは、カスタム・セル・ファクトリがVirtualFlow内のアイテムを表すのに使用できるセルをこの関数から返すことだけです。

        詳細は、Cellクラスのドキュメントを参照してください。

        関連項目:
        getCellFactory()setCellFactory(Callback)
      • requestLayout

        public void requestLayout()
        レイアウトをいくらか効率的にサポートするためにオーバーライドされました。 VirtualFlowは、位置が変わるたびに、または他のものが変わるたびにレイアウトを実行する必要があるが、親に通知する理由はないので、管理されていないとみなすことができます。 しかし、優先サイズ(vertical、createCell、およびconfigCellなどの)に影響する可能性のあるものが変更された場合、親に通知する必要があります。
        オーバーライド:
        requestLayout 、クラス: Parent
      • getAvailableCell

        protected T getAvailableCell​(int prefIndex)
        レイアウトで使用できるセルを取得します。 この関数は、可能であればパイルのセルを再利用し、必要に応じて新しいセルを作成します。
        パラメータ:
        prefIndex - 優先インデックス
        戻り値:
        利用可能なセル
      • addAllToPile

        protected void addAllToPile()
        このメソッドはVirtualFlowからすべてのセルを削除し、それらを削除して'pile' (すなわち、後でセルを使用できる場所)に追加します。 このメソッドは、サブクラスが適切にクリーンアップできるように保護されています。
      • getVisibleCell

        public T getVisibleCell​(int index)
        セルが作成され、配置されている場合は、指定されたインデックスのセルを取得します。 "見える"はちょっとした誤解ですが、セルはビューポート(クリップされている可能性があります)で表示されないかもしれませんが、作成され使用されているセルとパイルにあるセルまたは作成されていないセルを区別します。
        パラメータ:
        index - インデックス
        戻り値:
        可視セル
      • getLastVisibleCell

        public T getLastVisibleCell()
        現在部分的または完全に表示されている最後の空でないIndexedCellを検索して返します。 この関数は、セルがない場合、またはビューポートの長さが0の場合はnullを返します。
        戻り値:
        最後の可視セル
      • getFirstVisibleCell

        public T getFirstVisibleCell()
        部分的または完全に表示される最初の空でないIndexedCellを検索して返します。 セルがないか、またはビューポートの長さが0の場合、これは実際にはnullを返します。
        戻り値:
        最初の可視セル
      • scrollToTop

        public void scrollToTop​(T firstCell)
        指定したセルがビューポートの先頭に配置されるようにセルの位置を調整します。 指定されたセルは、すでに"live"である必要があります。
        パラメータ:
        firstCell - 最初のセル
      • scrollToBottom

        public void scrollToBottom​(T lastCell)
        指定したセルがビューポートの最後に配置されるようにセルの位置を調整します。 指定されたセルは、すでに"live"である必要があります。
        パラメータ:
        lastCell - 最後のセル
      • scrollTo

        public void scrollTo​(T cell)
        選択したセルがビューポート(ただ)に完全に表示されるようにセルを調整します。
        パラメータ:
        cell - セル
      • scrollTo

        public void scrollTo​(int index)
        指定されたインデックスのセルがビューポートに完全に表示されるようにセルを調整します。
        パラメータ:
        index - インデックス
      • scrollToTop

        public void scrollToTop​(int index)
        指定されたインデックスのセルがビューポートで完全に表示され、ビューポートの最上部に配置されるようにセルを調整します。
        パラメータ:
        index - インデックス
      • scrollPixels

        public double scrollPixels​(double delta)
        ピクセル数を表すデルタ値が与えられた場合、このメソッドは指定されたピクセル数を与えられた方向(正は下/右、負は上/左)にVirtualFlowを移動しようとします。 実際に移動されたピクセル数を返します。
        パラメータ:
        delta - デルタ値
        戻り値:
        実際に移動したピクセル数
      • getCell

        public T getCell​(int index)
        指定されたインデックスのセルを返します。 これは、cellCountで定義された範囲を超えて、任意のセルに対して呼び出すことができます。この場合、空のセルが返されます。 戻り値は、何らかの理由で格納されるべきではありません。
        パラメータ:
        index - インデックス
        戻り値:
        セル
      • setCellIndex

        protected void setCellIndex​(T cell,
                                    int index)
        VirtualFlowはこのメソッドを使用してセル・インデックス(IndexedCell.updateIndex(int)さんに直接電話するのではなく)を設定します。そのため、興味のある場合は、サブクラスがオーバーライドするのに最適な場所です。
        パラメータ:
        cell - インデックスが更新されるセル。
        index - セルの新しいインデックス。
      • getCellIndex

        protected int getCellIndex​(T cell)
        指定されたセルのインデックスを返します。 これにより、サブクラスはセル・インデックスの取得方法をカスタマイズできます。
        パラメータ:
        cell - セル
        戻り値:
        インデックス