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

クラスCheckBoxListCell<T>

  • 型パラメータ:
    T - ListViewに含まれる要素の型。
    すべての実装されたインタフェース:
    Styleable, EventTarget, Skinnable


    public class CheckBoxListCell<T>
    extends ListCell<T>
    セル内にCheckBoxノードを描画し、オプションでチェック・ボックスの意味を示すラベルを追加するListCell実装を含むクラス。

    CheckBoxListCellは、ListViewの左側にCheckBox、水平方向の残りのすべてのスペースにリスト・アイテムに関連するテキストを配置してレンダリングされます。

    このクラスのインスタンスを構築するには、型Tのオブジェクトを入力とし、指定されたアイテムが選択されているかどうかを表すObservableValue<Boolean>を返すCallbackを指定する必要があります。 このObservableValueは双方向(セル内のCheckBoxはユーザーの操作に基づいてこのプロパティを設定/設定解除し、CheckBoxは外部から変更された場合はObservableValue<Boolean>の状態を反映)バインドされます。

    CheckBoxListCellはCheckBoxをライブ・レンダリングすること、つまり、CheckBoxは常に対話型で、ユーザーが直接切り替えることに注意してください。 これは、セルがそのediting stateに入る必要がないことを意味します(通常は、ユーザーがセル上をダブルクリックすると編集状態になります)。 これによる副次的影響は、通常の編集コールバック(on edit commitなど)が呼び出されないことです。 変更の通知を受け取る必要がある場合は、CheckBoxで操作されるブール型プロパティを直接監視することをお薦めします。

    導入されたバージョン:
    JavaFX 2.2
    関連項目:
    CheckBoxListCell
    • コンストラクタの詳細

      • CheckBoxListCell

        public CheckBoxListCell​()
        デフォルトのCheckBoxListCellを作成します。
      • CheckBoxListCell

        public CheckBoxListCell​(Callback<T,ObservableValue<Boolean>> getSelectedProperty)
        デフォルトのCheckBoxListCellを作成します。
        パラメータ:
        getSelectedProperty - ListViewからのアイテムを入力とし、ObservableValue<Boolean>を返すCallback
      • CheckBoxListCell

        public CheckBoxListCell​(Callback<T,ObservableValue<Boolean>> getSelectedProperty,
                                StringConverter<T> converter)
        カスタム文字列コンバータを使用して、CheckBoxListCellを作成します。
        パラメータ:
        getSelectedProperty - ListViewからのアイテムを入力とし、ObservableValue<Boolean>を返すCallback
        converter - 型Tのオブジェクトを入力とし、オブジェクトを視覚的に表すために使用できる文字列を返すStringConverter。
    • メソッドの詳細

      • forListView

        public static <T> Callback<ListView<T>,ListCell<T>> forListView​(Callback<T,ObservableValue<Boolean>> getSelectedProperty)
        ListViewコントロールで使用するセル・ファクトリを作成します。 ListViewで使用される場合、CheckBoxListCellは、ListViewの左側にCheckBox、水平方向の残りのすべてのスペースにリスト・アイテムに関連するテキストを配置してレンダリングされます。
        型パラメータ:
        T - ListViewに含まれる要素の型。
        パラメータ:
        getSelectedProperty - 型T (ListView<T>.itemsリストから取得された値)のオブジェクトを入力とし、指定されたアイテムが選択されているかどうかを表すObservableValue<Boolean>を返すCallback このObservableValueは、双方向にバインドされます(つまり、セル内のCheckBoxがユーザー操作に基づいてこのプロパティを設定または設定解除し、CheckBoxは変更が外部で行われた場合、ObservableValueの状態を反映します)。
        戻り値:
        ListViewアイテム・リストに含まれる要素の型で動作できるListCellを返すCallback
      • forListView

        public static <T> Callback<ListView<T>,ListCell<T>> forListView​(Callback<T,ObservableValue<Boolean>> getSelectedProperty,
                                                                        StringConverter<T> converter)
        ListViewコントロールで使用するセル・ファクトリを作成します。 ListViewで使用される場合、CheckBoxListCellは、ListViewの左側にCheckBox、水平方向の残りのすべてのスペースにリスト・アイテムに関連するテキストを配置してレンダリングされます。
        型パラメータ:
        T - ListViewに含まれる要素の型。
        パラメータ:
        getSelectedProperty - 型T (ListView<T>.itemsリストから取得された値)のオブジェクトを入力とし、指定されたアイテムが選択されているかどうかを表すObservableValue<Boolean>を返すCallback このObservableValueは、双方向にバインドされます(つまり、セル内のCheckBoxがユーザー操作に基づいてこのプロパティを設定または設定解除し、CheckBoxは変更が外部で行われた場合、ObservableValueの状態を反映します)。
        converter - 型Tのオブジェクトを入力とし、オブジェクトを視覚的に表すために使用できる文字列を返すStringConverter。
        戻り値:
        ListViewに含まれる要素の型で動作できるListCellを返すCallback
      • setSelectedStateCallback

        public final void setSelectedStateCallback​(Callback<T,ObservableValue<Boolean>> value)
        画面上に表示されるCheckBoxによってバインドされるCallbackを設定します。
        パラメータ:
        value - Callback
      • getSelectedStateCallback

        public final Callback<T,ObservableValue<Boolean>> getSelectedStateCallback​()
        画面上に表示されるCheckBoxによってバインドされるCallbackを返します。
        戻り値:
        画面に表示されるCheckBoxにバインドされているCallback
      • updateItem

        public void updateItem​(T item,
                               boolean empty)
        updateItemメソッドは、開発者にとって、呼び出すことはできないが、オーバーライドしてセルのビジュアルをカスタマイズできる、最適なメソッドです。 つまり、開発者は、コードでこのメソッドを呼び出さないようにしてください。このメソッドは、ListViewコントロールなどのUIコントロールによってのみ呼び出されるようにする必要があります。 ただし、updateItemメソッドが存在する理由は、開発者がカスタム・セル・ファクトリ(ListView cell factoryなど)を指定するときに、updateItemメソッドをオーバーライドして、セルを完全にカスタマイズできるようにすることです。

        CellのサブクラスがupdateItemメソッドを適切にオーバーライドすることは非常に重要であり、これは、そのようにしないと、セルが空白になったり、セルに予期しないコンテンツが含まれるなどの問題が発生するためです。 updateItemメソッドを適切にオーバーライドする方法の例を次に示します。

         protected void updateItem(T item, boolean empty) {
             super.updateItem(item, empty);
        
             if (empty || item == null) {
                 setText(null);
                 setGraphic(null);
             } else {
                 setText(item.toString());
             }
         }
         

        このコード・サンプルには次の2つの重要なポイントがあることに注意してください。

        1. super.updateItem(T, boolean)メソッドを呼び出します。 これを行わないと、itemプロパティとemptyプロパティが正しく設定されず、グラフィカルな問題が発生する可能性があります。
        2. empty状態をテストし、trueの場合は、textプロパティとgraphicプロパティをnullに設定します。 これを行わないと、ほぼ確実に、エンド・ユーザーに対して予想外のグラフィカル・アーティファクトがセル内に表示されます。
        オーバーライド:
        updateItem 、クラス: Cell<T>
        パラメータ:
        item - セルの新しいアイテム。
        empty - このセルがリストからのデータを表しているかどうか。 空の場合、いずれのドメイン・データも表しませんが、空の行のレンダリングに使用されるセルとなります。