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

クラスCheckBoxTableCell<S,T>

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


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

    デフォルトでは、CheckBoxTableCellは、TableColumnの中央にCheckBoxを配置してレンダリングされます。 ラベルが必要な場合は、非nullのStringConverterインスタンスをCheckBoxTableCell(Callback, StringConverter)コンストラクタに提供する必要があります。

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

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

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

      • CheckBoxTableCell

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

        public CheckBoxTableCell​(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty)
        カスタムCallbackを使用してデフォルトのCheckBoxTableCellを作成して、指定されたセル索引のObservableValueを取得します。
        パラメータ:
        getSelectedProperty - TableColumnからのインデックスを入力とし、ObservableValueを返すCallback
      • CheckBoxTableCell

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

      • forTableColumn

        public static <S> Callback<TableColumn<S,Boolean>,TableCell<S,Boolean>> forTableColumn​(TableColumn<S,Boolean> column)
        TableColumnセル・ファクトリで使用するセル・ファクトリを作成します。 このメソッドでは、TableColumnがBoolean型である必要があります。

        TableColumnで使用される場合、CheckBoxCellは列の中央にCheckBoxを配置してレンダリングされます。

        列の各セル内に含まれているObservableValue<Boolean>は、双方向にバインドされます。 これは、セルのCheckBoxが、ユーザー操作に基づいてこのプロパティを設定または設定解除すること、およびCheckBoxは変更が外部で行われた場合、ObservableValue<Boolean>の状態を反映することを意味します。

        型パラメータ:
        S - TableViewジェネリック型の型
        パラメータ:
        column - ブール型のTableColumn
        戻り値:
        TableColumnに含まれる要素の型で動作できるTableCellを返すCallback
      • forTableColumn

        public static <S,T> Callback<TableColumn<S,T>,TableCell<S,T>> forTableColumn​(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty)
        TableColumnセル・ファクトリで使用するセル・ファクトリを作成します。 このメソッドでは、TableColumnがObservableValue<Boolean>型である必要があります。

        TableColumnで使用される場合、CheckBoxCellは列の中央にCheckBoxを配置してレンダリングされます。

        型パラメータ:
        S - TableViewジェネリック型の型
        T - TableColumnインスタンスに含まれている要素の型。
        パラメータ:
        getSelectedProperty - 型TableColumn<S,T>のオブジェクトを入力とし、指定されたアイテムが選択されているかどうかを表すObservableValue<Boolean>を返すCallback。 ObservableValue<Boolean>は双方向にバインドされます(つまり、セルのCheckBoxが、ユーザー操作に基づいてこのプロパティを設定または設定解除すること、およびCheckBoxは変更が外部で行われた場合、ObservableValue<Boolean>の状態を反映します)。
        戻り値:
        TableColumnに含まれる要素の型で動作できるTableCellを返すCallback
      • forTableColumn

        public static <S,T> Callback<TableColumn<S,T>,TableCell<S,T>> forTableColumn​(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty,
                                                                                     boolean showLabel)
        TableColumnセル・ファクトリで使用するセル・ファクトリを作成します。 このメソッドでは、TableColumnがObservableValue<Boolean>型である必要があります。

        TableColumnで使用される場合、CheckBoxCellは列の中央にCheckBoxを配置してレンダリングされます。

        型パラメータ:
        S - TableViewジェネリック型の型
        T - TableColumnインスタンスに含まれている要素の型。
        パラメータ:
        getSelectedProperty - 型TableColumn<S,T>のオブジェクトを入力とし、指定されたアイテムが選択されているかどうかを表すObservableValue<Boolean>を返すCallback。 ObservableValue<Boolean>は双方向にバインドされます(つまり、セルのCheckBoxが、ユーザー操作に基づいてこのプロパティを設定または設定解除すること、およびCheckBoxは変更が外部で行われた場合、ObservableValue<Boolean>の状態を反映します)。
        showLabel - 場合によっては、CheckBoxの横のTableCellにラベルを表示することが必要になる場合があります。 デフォルトでは、ラベルは表示されませんが、これをtrueに設定すると、セルのアイテムでもtoString()が呼び出されるようになります。 これが目的の動作でない場合は、該当する行アイテムのラベルを指定するコールバックを指定できるforTableColumn(javafx.util.Callback, javafx.util.StringConverter)を使用することを検討します。
        戻り値:
        TableColumnに含まれる要素の型で動作できるTableCellを返すCallback
      • forTableColumn

        public static <S,T> Callback<TableColumn<S,T>,TableCell<S,T>> forTableColumn​(Callback<Integer,ObservableValue<Boolean>> getSelectedProperty,
                                                                                     StringConverter<T> converter)
        TableColumnセル・ファクトリで使用するセル・ファクトリを作成します。 このメソッドでは、TableColumnがObservableValue<Boolean>型である必要があります。

        TableColumnで使用される場合、CheckBoxCellは列の中央にCheckBoxを配置してレンダリングされます。

        型パラメータ:
        S - TableViewジェネリック型の型
        T - TableColumnインスタンスに含まれている要素の型。
        パラメータ:
        getSelectedProperty - 型TableColumn<S,T>のオブジェクトを入力とし、指定されたアイテムが選択されているかどうかを表すObservableValue<Boolean>を返すCallback。 ObservableValue<Boolean>は双方向にバインドされます(つまり、セルのCheckBoxが、ユーザー操作に基づいてこのプロパティを設定または設定解除すること、およびCheckBoxは変更が外部で行われた場合、ObservableValue<Boolean>の状態を反映します)。
        converter - 型Tのオブジェクトを入力とし、オブジェクトを視覚的に表すために使用できる文字列を返すStringConverter。 forTableColumn(Callback, boolean)のデフォルト実装(showLabelがtrueの場合)は、すべての非nullアイテムでtoString()を単に呼び出します(指定されたアイテムがnullの場合、単に空の文字列を返します)。
        戻り値:
        TableColumnに含まれる要素の型で動作できるTableCellを返すCallback
      • setSelectedStateCallback

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

        public final Callback<Integer,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 - このセルがリストからのデータを表しているかどうか。 空の場合、いずれのドメイン・データも表しませんが、空の行のレンダリングに使用されるセルとなります。