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

クラスTreeTableColumn<S,T>

  • 型パラメータ:
    S - TableView汎用型の型(つまり、S == TableView<S>)
    T - このTableColumnのすべてのセルのコンテンツの型。
    すべての実装されたインタフェース:
    Styleable, EventTarget


    public class TreeTableColumn<S,T>
    extends TableColumnBase<TreeItem<S>,T>
    implements EventTarget
    TreeTableViewは、多数のTreeTableColumnインスタンスで構成されます。 TreeTableViewの各TreeTableColumnでは、その列のコンテンツを表示(および編集)します。 TreeTableColumnでは単一列のデータの表示と編集を行うことに加え、次のことに必要なプロパティも含まれています。 TreeTableColumnインスタンスの作成時における、設定する2つの最も重要なプロパティは、おそらく列のtext (列のヘッダー領域に表示されるもの)と列のcell value factory (列の個別のセルの移入に使用されるもの)です。 このことを行うには、次のコードのバリエーションを使用します。
    
     firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
         public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
             // p.getValue() returns the TreeItem<Person> instance for a particular TreeTableView row,
             // p.getValue().getValue() returns the Person instance inside the TreeItem<Person>
             return p.getValue().getValue().firstNameProperty();
         }
      });
     }
    このアプローチでは、p.getValue().getValue()から返されるオブジェクトに、単に返されるJavaFX ObservableValueがあることを想定しています。 この方法の利点は、TableViewによって内部的にバインディングが作成されるため、返されたObservableValueが変更された場合にセルのコンテンツが自動的にリフレッシュされることです。

    TableColumnがJavaFXよりも前に作成されたクラスと対話する必要がある状況、または通常プロパティにJavaFX APIを使用しない状況では、ReadOnlyObjectWrapperインスタンスで返された値をラップすることができます。 例:

    
     firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
         public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
             // p.getValue() returns the TreeItem<Person> instance for a particular TreeTableView row,
             // p.getValue().getValue() returns the Person instance inside the TreeItem<Person>
             return new ReadOnlyObjectWrapper(p.getValue().getValue().getFirstName());
         }
      });
     }
    今後、コンビニエンス・セル値ファクトリが開発され、開発者が使用できるようになることが期待されています。 JavaFX 2.0リリース以降では、そのようなコンビニエンス・クラスが1つ(TreeItemPropertyValueFactory)あります。 このクラスにより、前述のコードを記述する必要がなくなり、かわりにリフレクションを使用して文字列から特定のプロパティを参照します。 TableColumnとともにこれを使用する方法の詳細は、TreeItemPropertyValueFactoryクラスのドキュメントを参照してください。 また、TableColumnの使用方法の詳細は、TableViewクラスのドキュメントを参照してください。
    導入されたバージョン:
    JavaFX 8.0
    関連項目:
    TableViewTableCellTablePositionTreeItemPropertyValueFactory
    • プロパティの詳細

      • cellValueFactory

        public final ObjectProperty<Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>>> cellValueFactoryProperty
        1つのTreeTableColumn内のすべてのセルに値を移入する方法を指定するために、セル値ファクトリを設定する必要があります。 セル値ファクトリは、TreeTableColumn.CellDataFeaturesインスタンスを提供し、ObservableValueが返されることが想定されるCallbackです。 返されるObservableValueインスタンスは、値に対する更新を画面上にすぐに反映できるように、内部的に監視されます。

        セル値ファクトリの設定方法の例を次に示します。

        
         firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
             public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
                 // p.getValue() returns the TreeItem<Person> instance for a particular TreeTableView row,
                 // p.getValue().getValue() returns the Person instance inside the TreeItem<Person>
                 return p.getValue().getValue().firstNameProperty();
             }
          });
         }
        一般的なアプローチでは、Java beanからの単一値を使用してTreeTableColumnのセルに移入します。 この一般的なシナリオをサポートするために、TreeItemPropertyValueFactoryクラスがあります。 ここでは簡潔に、TreeItemPropertyValueFactoryクラスを使用して前述のユースケースを簡略化する方法を示すため、その使用方法の詳細は、このクラスを参照してください。
        
         firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
         
        関連項目:
        getCellValueFactory()setCellValueFactory(Callback)
      • cellFactory

        public final ObjectProperty<Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>>> cellFactoryProperty
        この列のすべてのセルのセル・ファクトリ。 セル・ファクトリは、各TreeTableCellに含まれているデータを単一のTreeTableColumnにレンダリングします。

        デフォルトでは、TreeTableColumnではdefault cell factoryが使用されますが、他の方法でデータを表示したり、編集をサポートするなどの目的で、これをカスタム実装に置換できます。 カスタム・セル・ファクトリの作成については、他の場所に多くのドキュメントがあります(CellTreeTableViewなどを参照)。

        最後に、javafx.scene.control.cellパッケージには多数の事前ビルドされたセル・ファクトリが用意されています。

        関連項目:
        getCellFactory()setCellFactory(Callback)
    • フィールドの詳細

      • DEFAULT_CELL_FACTORY

        public static final Callback<TreeTableColumn<?,?>,TreeTableCell<?,?>> DEFAULT_CELL_FACTORY
        TreeTableColumnインスタンスにcellFactoryが指定されていない場合、これがデフォルトとして使用されます。 現時点では、itemがノードの場合はgraphicプロパティ内のTableCell itemプロパティを単にレンダリングし、nullでない場合はtoString()を単に呼び出して結果の文字列をtextプロパティ内に設定します。
    • コンストラクタの詳細

      • TreeTableColumn

        public TreeTableColumn​()
        デフォルトのセル・ファクトリ、コンパレータおよびonEditCommit実装でデフォルトのTreeTableColumnを作成します。
      • TreeTableColumn

        public TreeTableColumn​(String text)
        デフォルトのセル・ファクトリ、コンパレータおよびonEditCommit実装で、指定された文字列に設定されたテキストでTreeTableColumnを作成します。
        パラメータ:
        text - TreeTableColumnがTreeTableView内に配置されたときに表示される文字列。
    • メソッドの詳細

      • editAnyEvent

        public static <S,T> EventType<TreeTableColumn.CellEditEvent<S,T>> editAnyEvent​()
        TreeTableColumn編集イベントの親イベント。
        型パラメータ:
        S - TreeTableViewジェネリック型の型
        T - このTreeTableColumn内のすべてのセルのコンテンツの型
        戻り値:
        編集イベント
      • editStartEvent

        public static <S,T> EventType<TreeTableColumn.CellEditEvent<S,T>> editStartEvent​()
        ユーザーが編集イベントを開始するためのなんらかの操作を実行したか、またはTreeTableView.edit(int, javafx.scene.control.TreeTableColumn)メソッドが呼び出されたことを示します。
        型パラメータ:
        S - TreeTableViewジェネリック型の型
        T - このTreeTableColumn内のすべてのセルのコンテンツの型
        戻り値:
        編集開始イベント
      • editCancelEvent

        public static <S,T> EventType<TreeTableColumn.CellEditEvent<S,T>> editCancelEvent​()
        編集が取り消されたこと、つまりバッキング・データ・ソースを変更できないことを示します。
        型パラメータ:
        S - TreeTableViewジェネリック型の型
        T - このTreeTableColumn内のすべてのセルのコンテンツの型
        戻り値:
        edit cancelイベント
      • editCommitEvent

        public static <S,T> EventType<TreeTableColumn.CellEditEvent<S,T>> editCommitEvent​()
        ユーザーによって編集がコミットされたこと、つまりバッキング・データ・ソースを変更して新しいデータを反映する必要があることを示します。
        型パラメータ:
        S - TreeTableViewジェネリック型の型
        T - このTreeTableColumn内のすべてのセルのコンテンツの型
        戻り値:
        コミット・イベント
      • getTreeTableView

        public final TreeTableView<S> getTreeTableView​()
        プロパティtreeTableViewの値を取得します。
        プロパティの説明:
        このTreeTableColumnが属するTreeTableView。
      • setCellValueFactory

        public final void setCellValueFactory​(Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>> value)
        プロパティcellValueFactoryの値を設定します。
        プロパティの説明:
        1つのTreeTableColumn内のすべてのセルに値を移入する方法を指定するために、セル値ファクトリを設定する必要があります。 セル値ファクトリは、TreeTableColumn.CellDataFeaturesインスタンスを提供し、ObservableValueが返されることが想定されるCallbackです。 返されるObservableValueインスタンスは、値に対する更新を画面上にすぐに反映できるように、内部的に監視されます。

        セル値ファクトリの設定方法の例を次に示します。

        
         firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
             public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
                 // p.getValue() returns the TreeItem<Person> instance for a particular TreeTableView row,
                 // p.getValue().getValue() returns the Person instance inside the TreeItem<Person>
                 return p.getValue().getValue().firstNameProperty();
             }
          });
         }
        一般的なアプローチでは、Java beanからの単一値を使用してTreeTableColumnのセルに移入します。 この一般的なシナリオをサポートするために、TreeItemPropertyValueFactoryクラスがあります。 ここでは簡潔に、TreeItemPropertyValueFactoryクラスを使用して前述のユースケースを簡略化する方法を示すため、その使用方法の詳細は、このクラスを参照してください。
        
         firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
         
      • getCellValueFactory

        public final Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>> getCellValueFactory​()
        プロパティcellValueFactoryの値を取得します。
        プロパティの説明:
        1つのTreeTableColumn内のすべてのセルに値を移入する方法を指定するために、セル値ファクトリを設定する必要があります。 セル値ファクトリは、TreeTableColumn.CellDataFeaturesインスタンスを提供し、ObservableValueが返されることが想定されるCallbackです。 返されるObservableValueインスタンスは、値に対する更新を画面上にすぐに反映できるように、内部的に監視されます。

        セル値ファクトリの設定方法の例を次に示します。

        
         firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
             public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
                 // p.getValue() returns the TreeItem<Person> instance for a particular TreeTableView row,
                 // p.getValue().getValue() returns the Person instance inside the TreeItem<Person>
                 return p.getValue().getValue().firstNameProperty();
             }
          });
         }
        一般的なアプローチでは、Java beanからの単一値を使用してTreeTableColumnのセルに移入します。 この一般的なシナリオをサポートするために、TreeItemPropertyValueFactoryクラスがあります。 ここでは簡潔に、TreeItemPropertyValueFactoryクラスを使用して前述のユースケースを簡略化する方法を示すため、その使用方法の詳細は、このクラスを参照してください。
        
         firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
         
      • cellValueFactoryProperty

        public final ObjectProperty<Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>>> cellValueFactoryProperty​()
        1つのTreeTableColumn内のすべてのセルに値を移入する方法を指定するために、セル値ファクトリを設定する必要があります。 セル値ファクトリは、TreeTableColumn.CellDataFeaturesインスタンスを提供し、ObservableValueが返されることが想定されるCallbackです。 返されるObservableValueインスタンスは、値に対する更新を画面上にすぐに反映できるように、内部的に監視されます。

        セル値ファクトリの設定方法の例を次に示します。

        
         firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
             public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
                 // p.getValue() returns the TreeItem<Person> instance for a particular TreeTableView row,
                 // p.getValue().getValue() returns the Person instance inside the TreeItem<Person>
                 return p.getValue().getValue().firstNameProperty();
             }
          });
         }
        一般的なアプローチでは、Java beanからの単一値を使用してTreeTableColumnのセルに移入します。 この一般的なシナリオをサポートするために、TreeItemPropertyValueFactoryクラスがあります。 ここでは簡潔に、TreeItemPropertyValueFactoryクラスを使用して前述のユースケースを簡略化する方法を示すため、その使用方法の詳細は、このクラスを参照してください。
        
         firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
         
        関連項目:
        getCellValueFactory()setCellValueFactory(Callback)
      • setCellFactory

        public final void setCellFactory​(Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>> value)
        プロパティcellFactoryの値を設定します。
        プロパティの説明:
        この列のすべてのセルのセル・ファクトリ。 セル・ファクトリは、各TreeTableCellに含まれているデータを単一のTreeTableColumnにレンダリングします。

        デフォルトでは、TreeTableColumnではdefault cell factoryが使用されますが、他の方法でデータを表示したり、編集をサポートするなどの目的で、これをカスタム実装に置換できます。 カスタム・セル・ファクトリの作成については、他の場所に多くのドキュメントがあります(CellTreeTableViewなどを参照)。

        最後に、javafx.scene.control.cellパッケージには多数の事前ビルドされたセル・ファクトリが用意されています。

      • getCellFactory

        public final Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>> getCellFactory​()
        プロパティcellFactoryの値を取得します。
        プロパティの説明:
        この列のすべてのセルのセル・ファクトリ。 セル・ファクトリは、各TreeTableCellに含まれているデータを単一のTreeTableColumnにレンダリングします。

        デフォルトでは、TreeTableColumnではdefault cell factoryが使用されますが、他の方法でデータを表示したり、編集をサポートするなどの目的で、これをカスタム実装に置換できます。 カスタム・セル・ファクトリの作成については、他の場所に多くのドキュメントがあります(CellTreeTableViewなどを参照)。

        最後に、javafx.scene.control.cellパッケージには多数の事前ビルドされたセル・ファクトリが用意されています。

      • cellFactoryProperty

        public final ObjectProperty<Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>>> cellFactoryProperty​()
        この列のすべてのセルのセル・ファクトリ。 セル・ファクトリは、各TreeTableCellに含まれているデータを単一のTreeTableColumnにレンダリングします。

        デフォルトでは、TreeTableColumnではdefault cell factoryが使用されますが、他の方法でデータを表示したり、編集をサポートするなどの目的で、これをカスタム実装に置換できます。 カスタム・セル・ファクトリの作成については、他の場所に多くのドキュメントがあります(CellTreeTableViewなどを参照)。

        最後に、javafx.scene.control.cellパッケージには多数の事前ビルドされたセル・ファクトリが用意されています。

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

        public final void setSortType​(TreeTableColumn.SortType value)
        プロパティsortTypeの値を設定します。
        プロパティの説明:
        ソート順序(詳細は、TreeTableView.getSortOrder()を参照)の一部である場合にこの列を昇順または降順でソートするかどうかを示すために使用されます。 このプロパティを単に切り替えると、TreeTableViewでのソート順が変更されます(この列がsortOrderのObservableListに含まれていることが前提です)。
      • getSortType

        public final TreeTableColumn.SortType getSortType​()
        プロパティsortTypeの値を取得します。
        プロパティの説明:
        ソート順序(詳細は、TreeTableView.getSortOrder()を参照)の一部である場合にこの列を昇順または降順でソートするかどうかを示すために使用されます。 このプロパティを単に切り替えると、TreeTableViewでのソート順が変更されます(この列がsortOrderのObservableListに含まれていることが前提です)。
      • setOnEditStart

        public final void setOnEditStart​(EventHandler<TreeTableColumn.CellEditEvent<S,T>> value)
        プロパティonEditStartの値を設定します。
        プロパティの説明:
        このイベント・ハンドラは、ユーザーが編集を正常に開始すると起動されます。
      • getOnEditStart

        public final EventHandler<TreeTableColumn.CellEditEvent<S,T>> getOnEditStart​()
        プロパティonEditStartの値を取得します。
        プロパティの説明:
        このイベント・ハンドラは、ユーザーが編集を正常に開始すると起動されます。
      • setOnEditCommit

        public final void setOnEditCommit​(EventHandler<TreeTableColumn.CellEditEvent<S,T>> value)
        プロパティonEditCommitの値を設定します。
        プロパティの説明:
        このイベント・ハンドラは、ユーザーが編集を正常にコミットすると起動されます。
      • getOnEditCommit

        public final EventHandler<TreeTableColumn.CellEditEvent<S,T>> getOnEditCommit​()
        プロパティonEditCommitの値を取得します。
        プロパティの説明:
        このイベント・ハンドラは、ユーザーが編集を正常にコミットすると起動されます。
      • setOnEditCancel

        public final void setOnEditCancel​(EventHandler<TreeTableColumn.CellEditEvent<S,T>> value)
        プロパティonEditCancelの値を設定します。
        プロパティの説明:
        このイベント・ハンドラは、ユーザーがセルの編集を取り消すと起動されます。
      • getOnEditCancel

        public final EventHandler<TreeTableColumn.CellEditEvent<S,T>> getOnEditCancel​()
        プロパティonEditCancelの値を取得します。
        プロパティの説明:
        このイベント・ハンドラは、ユーザーがセルの編集を取り消すと起動されます。
      • getColumns

        public final ObservableList<TreeTableColumn<S,?>> getColumns​()
        これにより、関連データのグループ化に役立つネストされた列のサポートが可能になります。 たとえば、Name列に姓および名前用の2つのネストされた列がある場合があります。

        これは表にほとんど影響しません。すべての列インデックスはリーフ列のみを指し、親列を使用してリーフ列のみをソートすることはできません。 つまり、これは純粋に視覚的な機能です。

        定義:
        getColumns 、クラス: TableColumnBase<TreeItem<S>,T>
        戻り値:
        このTableColumnBaseの子であるTableColumnBaseインスタンス(またはサブクラス)が含まれているObservableListです。 これらの子TableColumnBaseインスタンスは、表示可能として設定されている場合、この表の列の下に表示されます。
      • getCellObservableValue

        public final ObservableValue<T> getCellObservableValue​(int index)
        指定された索引のアイテム(型S)にObservableValue<T>を返そうとしています。 つまり、このメソッドは、ゼロ以上で基礎となるデータ・モデルのサイズより小さい整数値を受信することを想定しています。 インデックスが有効な場合、このメソッドは、この特定の列に対してObservableValue<T>を返します。

        これを実行するには、cell value factoryを呼び出し、CellDataFeaturesが渡されたときにそれによって返されたものを返します(詳細は、TableColumnおよびTreeTableColumnに属するCellDataFeaturesクラスなどを参照)。

        定義:
        getCellObservableValue 、クラス: TableColumnBase<TreeItem<S>,T>
        パラメータ:
        index - ObservableValue<T>が検索されるアイテム(型S)のインデックス。
        戻り値:
        この特定の表の列のObservableValue<T>。
      • getCellObservableValue

        public final ObservableValue<T> getCellObservableValue​(TreeItem<S> item)
        指定されたアイテム(型S)にObservableValue<T>を返そうとしています。 つまり、このメソッドは、表の行全体について基礎となるデータ・モデルからオブジェクトを受信することを想定し、この特定の列の値についてObservableValue<T>を返す必要があります。

        これを実行するには、cell value factoryを呼び出し、CellDataFeaturesが渡されたときにそれによって返されたものを返します(詳細は、TableColumnおよびTreeTableColumnに属するCellDataFeaturesクラスなどを参照)。

        定義:
        getCellObservableValue 、クラス: TableColumnBase<TreeItem<S>,T>
        パラメータ:
        item - ObservableValue<T>が検索されるアイテム(型S)。
        戻り値:
        この特定の表の列のObservableValue<T>。
      • getStyleableParent

        public Styleable getStyleableParent​()
        このStyleableの親を返すか、親がない場合はnullを返します。
        定義:
        getStyleableParent 、インタフェース: Styleable
        戻り値:
        getTreeTableView()
      • getCssMetaData

        public List<CssMetaData<? extends Styleable,?>> getCssMetaData​()
        このStyleableのCssMetaData。 これは変更不可能なリストとして返される場合があります。
        定義:
        getCssMetaData 、インタフェース: Styleable
        戻り値:
        CssMetaData
      • getStyleableNode

        public Node getStyleableNode​()
        このStyleableオブジェクトを表すNodeを返します。 このメソッドは、Styleable自体がノードではない場合にオーバーライドする必要があります。そのため、オプションで、自身のルート・ノード表現を返すことができます。 デフォルトでは、このメソッドはnullを返します。これは、Styleable自体がNodeであるか、そうでない場合に、Styleableがリクエスト時に使用可能なノード表現を持たないことを意味します。
        定義:
        インタフェースStyleable内のgetStyleableNode
        戻り値:
        このStyleableオブジェクトを表すNode