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

クラスTreeTableView<S>

  • 型パラメータ:
    S - このTreeTableViewで使用されるTreeItemインスタンスの型。
    すべての実装されたインタフェース:
    Styleable, EventTarget, Skinnable

    @DefaultProperty("root")
    public class TreeTableView<S>
    extends Control
    TreeTableViewコントロールは、無制限の数のデータ行と列を視覚化するために設計されています。 TreeTableViewコントロールは、TreeViewコントロールとTableViewコントロールに概念的に非常に似ており、この後の説明でわかるとおり、APIの大部分が同じです。 ただし、高いレベルの概要から説明すると、TreeTableViewではTreeViewと同じTreeItem APIを使用しているため、単にTreeTableViewでroot nodeを設定する必要があることに注意してください。 同様に、TreeTableViewコントロールでは、TableViewコントロールが使用している同じTableColumnベースのアプローチを使用しています。ただし、TableView固有のTableColumnクラスを使用するかわりに、TreeTableView固有のTreeTableColumnクラスを使用する必要があります。 TreeTableViewインスタンスの作成方法の例については、後述の項TreeTableViewの作成を参照してください。

    TableViewコントロールのように、TreeTableViewコントロールには、次のような多くの機能があります。

    • 強力なTreeTableColumn API:
    • ユーザーが列をサイズ変更したときの動作を指定する様々なresizing policies
    • 列ヘッダーのクリックによるmultiple column sortingのサポート(複数の列でソートするには、キーボードの[Shift]キーを押しながらヘッダーをクリックします)。

    TreeTableViewの作成

    TreeTableViewの作成は、複数のステップからなるプロセスで、表現する必要がある基礎となるデータ・モデルに応じて異なります。 この例では、ファイル・システムを視覚化するためにTreeTableViewを使用し、次のように定義された仮想の(および大幅に簡略化された) Fileクラスを使用します。

    
     public class File {
         private StringProperty name;
         public void setName(String value) { nameProperty().set(value); }
         public String getName() { return nameProperty().get(); }
         public StringProperty nameProperty() {
             if (name == null) name = new SimpleStringProperty(this, "name");
             return name;
         }
    
         private LongProperty lastModified;
         public void setLastModified(long value) { lastModifiedProperty().set(value); }
         public long getLastModified() { return lastModifiedProperty().get(); }
         public LongProperty lastModifiedProperty() {
             if (lastModified == null) lastModified = new SimpleLongProperty(this, "lastModified");
             return lastModified;
         }
     }

    最初に、次のように、TreeTableViewインスタンスを定義する必要があります。

    
     TreeTableView<File> treeTable = new TreeTableView<>();

    次に、インスタンス化された基本的なTreeTableViewで、データ・モデルをフォーカスします。 前述のとおり、この例では、Fileインスタンスを使用してファイル・システムを表現します。 これを行うには、次のように、ツリー表のルート・ノードを定義する必要があります。

    
     TreeItem<File> root = new TreeItem<>(new File("/"));
     treeTable.setRoot(root);

    このように設定されたルートにより、ルートのchildrenが変更されると、TreeTableViewが自動的に更新されます。

    この時点で、ルートのTreeItemインスタンスを監視するために、TreeTableViewが構成されました。 この時点で欠けている構成要素は、モデル内に含まれているデータを分割する方法と、それを1つ以上のTreeTableColumnインスタンスで表現する方法です。 2列のTreeTableViewを作成して、ファイル名と最終変更のプロパティを表示するには、次のように前述のコードを拡張します。

    
     TreeTableColumns<File,String> fileNameCol = new TreeTableColumn<>("Filename");
     TreeTableColumns<File,Long> lastModifiedCol = new TreeTableColumn<>("Size");
    
     table.getColumns().setAll(fileNameCol, lastModifiedCol);

    前述のコードで、TreeTableViewインスタンスの作成に最低限必要なプロパティをほぼ完全に定義しました。 欠落しているものは、2つの列のcell value factoriesのみです。これは、特定の行のセルの値を決定します。 一般的に、これらはTreeItemPropertyValueFactoryクラスを使用して指定できますが、それが失敗する場合は、匿名内部クラスを作成して、必要なことを実行することもできます。 たとえば、TreeItemPropertyValueFactoryを使用して、次のことを行います。

    
     fileNameCol.setCellValueFactory(new TreeItemPropertyValueFactory("name"));
     lastModifiedCol.setCellValueFactory(new TreeItemPropertyValueFactory("lastModified"));
    このコード(ファイル・システム構造がメモリー内におそらく構築されていると想定しています)を実行すると、nameとlastModifiedの2つの列を持つTreeTableViewが表示されます。 Fileクラスの他のプロパティは、それらに対してTreeTableColumnが定義されない場合は、表示されません。

    プロパティを含まないクラスに対するTreeTableViewのサポート

    前述のコードは、ドメイン・オブジェクトがJavaFXプロパティを考慮して設計されている場合にTreeTableViewを作成するための最低限の短いコードです(また、TreeItemPropertyValueFactoryは標準のJavaBeanプロパティもサポートしますが、これに対する注意事項があるため、クラスのドキュメントで詳細を参照してください)。 これに当てはまらない場合は、カスタムのセル値ファクトリを指定する必要があります。 セル値ファクトリの詳細情報は、TreeTableColumn APIのドキュメントに記載されていますが、ここでは簡潔にTreeTableColumnの指定方法を示します。

    
     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();
         }
      });
     }

    TreeTableViewの選択/フォーカス用API

    選択およびフォーカスを追跡するには、SelectionModelクラスおよびFocusModelクラスに習熟することが必要です。 TreeTableViewには、selectionModelfocusModelのプロパティからそれぞれ入手できる、これらのクラスのインスタンスを最大で1つずつ指定できます。 このAPIを使用すると新しい選択モデルを設定できますが、ほとんどの場合は、デフォルトの選択モデルおよびフォーカス・モデルが機能するため、このことは必要ありません。

    デフォルトのSelectionModelは、TreeTableViewのインスタンス化がMultipleSelectionModel抽象クラスの実装の場合に使用されます。 ただし、selectionModeプロパティのAPIドキュメントに示されているように、デフォルト値はSelectionMode.SINGLEです。 したがって、デフォルトのTreeTableViewインスタンスでの複数選択を可能にするには、次を実行する必要があります。

     
     treeTableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

    TreeTableViewのビジュアルのカスタマイズ

    TreeTableViewのビジュアルは、デフォルトのrow factoryを置換することで、全体的にカスタマイズできます。 行ファクトリは、TreeTableViewの行全体を表すために使用されるTreeTableRowインスタンスを生成するために使用されます。

    ただし、行ごとの基準ではなく、列ごとの基準でセルをカスタマイズすることがより一般的であるため、多くの場合、このことは望ましくありません。 したがって、TreeTableRowTreeTableCellではないことに注意することが重要です。 TreeTableRowは単にゼロ個以上のTreeTableCellのコンテナで、ほとんどの状況において、TreeTableRowよりも、カスタムのTreeTableCellを作成することの方が多くなります。 カスタムのTreeTableRowインスタンスを作成する主なユースケースでは、通常、なんらかの形式の複数の列の範囲を処理するためのサポートを導入します。

    TreeTableColumnのcell factoryプロパティに適切な関数を割り当てて、列ごとにカスタムのTreeTableCellインスタンスを作成できます。

    カスタム・セルを作成する方法の詳細は、Cellクラスのドキュメントを参照してください。

    編集

    このコントロールは値のインライン編集をサポートしており、このセクションでは使用可能なAPIの概要とその使用方法を示します。

    まず、通常、セルを編集する場合は、セルを編集しないときとは異なるユーザー・インタフェースが必要となります。 このことは、使用するCell実装によって行います。 TreeTableViewに対してはper rowではなくper-TreeTableColumnにすることを強くお薦めします。これは、ユーザーが各列の値を個別に編集できるようにする場合が多く、かつ、このアプローチでは列ごとに固有の編集者が許可されるためです。 セルを永続的に編集状態にするか(たとえば、このことはCheckBoxセルでは一般的です)、編集が開始されたとき(たとえば、セルでダブルクリックを受け取ったとき)に別のUIに切り替えるかは任意です。

    セルに対する編集がいつリクエストされたかを知るには、単にCell.startEdit()メソッドをオーバーライドし、セルのtextプロパティおよびgraphicプロパティを適切に更新します(たとえば、textをnullに設定し、graphicをTextFieldに設定します)。 また、編集が完了したときにUIを元の視覚的状態にリセットするようにCell.cancelEdit()もオーバーライドします。 どちらの場合も、スーパー・メソッドを呼び出して、編集モードを開始または終了するために必要なすべての作業をセルで実行するようにすることが重要です。

    セルが編集状態になったら、次に、現在行っている編集をコミットまたは取り消す方法を確認しておきましょう。 このことは、セル・ファクトリ・プロバイダとしてユーザーが行います。 セル実装は、ユーザー入力に基づいて(たとえば、ユーザーがキーボードで[Enter]キーまたは[Esc]キーを押したとき)、編集の終了を認識します。 このことが発生したときは、Cell.commitEdit(Object)またはCell.cancelEdit()を適切に呼び出す必要があります。

    Cell.commitEdit(Object)を呼び出すと、TreeTableViewに対してイベントが起動され、これはTreeTableColumn.setOnEditCommit(javafx.event.EventHandler)を介してEventHandlerを追加することで監視できます。 また、edit startedit cancelの編集イベントを監視することもできます。

    デフォルトでは、TreeTableColumnの編集コミット・ハンドラはnull以外であり、デフォルトのハンドラでは、現在編集中の行のアイテムのプロパティ値を上書きすることを試みます。 このことは、Cell.commitEdit(Object)メソッドに新しい値が渡され、これが、起動されたCellEditEventを介して編集コミット・ハンドラに渡されると、実行可能になります。 これは単に、この値を取得するためのTreeTableColumn.CellEditEvent.getNewValue()の呼出しの問題です。

    独自のEventHandlerTreeTableColumn.setOnEditCommit(javafx.event.EventHandler)を呼び出す場合に、デフォルトのハンドラを削除することに注意することが非常に重要です。 その後、プロパティ(または関連するデータ・ソース)へのライトバックを処理しないかぎり、何も実行されません。 このことは、TableColumnBase.addEventHandler(javafx.event.EventType, javafx.event.EventHandler)メソッドを使用し、2番目の引数を目的のEventHandlerとして、TreeTableColumn.EDIT_COMMIT_EVENT EventTypeを追加することによって回避できます。 このメソッドを使用すると、デフォルトの実装は置き換えられず、編集コミットが発生したときに通知されるようになります。

    このサマリーでは、よくある質問に対して答えを示すことを意図しています。 JavaFXには、かわりにすべての編集要件を処理する、数多くの事前作成のセル・ファクトリが付属しています。 これらの事前作成のセル・ファクトリは、javafx.scene.control.cellパッケージにあります。

    導入されたバージョン:
    JavaFX 8.0
    関連項目:
    TreeTableColumnTreeTablePosition
    • プロパティの詳細

      • root

        public final ObjectProperty<TreeItem<S>> rootProperty
        TreeTableViewのルート・ノードを表すプロパティ。
        戻り値:
        ルート・プロパティ
      • treeColumn

        public final ObjectProperty<TreeTableColumn<S,?>> treeColumnProperty
        公開ノードが内部に表示される列(つまり、矢印を使用した列)を表すプロパティ。 デフォルトでは、これはこのプロパティがnullの場合は左端の列で、それ以外の場合はそれは指定した列になります(それはnull以外でvisible leaf columnsリストに含まれていることを想定しています)。
        関連項目:
        getTreeColumn()setTreeColumn(TreeTableColumn)
      • expandedItemCount

        public final ReadOnlyIntegerProperty expandedItemCountProperty

        TreeTableViewに現在表示できるツリー・ノードの数を表します。 これは基本的に、すべての展開されたツリー・アイテムとその子の数です。

        たとえば、ルート・ノードのみが表示されている場合は、expandedItemCountは1になります。 ルートに3つの子があり、ルートが展開されていた場合は、値は4になります。

        関連項目:
        getExpandedItemCount()
      • editable

        public final BooleanProperty editableProperty
        このTreeTableViewが編集可能かどうかを指定します - TreeTableViewおよびその中のTreeCellが両方とも編集可能な場合にのみ、TreeCellが編集状態になります。
        関連項目:
        isEditable()setEditable(boolean)
      • tableMenuButtonVisible

        public final BooleanProperty tableMenuButtonVisibleProperty
        これは、TableView内の指定されたスペースをユーザーがクリックするとメニュー・ボタンを使用可能にするかどうかを制御します。ここには、この表の各TreeTableColumnのラジオ・メニュー・アイテムが表示されます。 このメニューにより、ユーザーがすべてのTreeTableColumnの表示と非表示を簡単に切り替えることができます。
        関連項目:
        isTableMenuButtonVisible()setTableMenuButtonVisible(boolean)
      • rowFactory

        public final ObjectProperty<Callback<TreeTableView<S>,TreeTableRow<S>>> rowFactoryProperty
        TreeTableRowを生成する関数。 TreeTableRowの再利用はシステムによって行われます。 この関数から、TableViewの単一行を表すために使用できる可能性があるTreeTableRowを返します。

        TreeTableRowはTableCellではないことに注意してください。 TreeTableRowは単にTableCellのコンテナで、ほとんどの状況において、TreeTableRowよりも、カスタムのTableCellを作成することの方が多くなります。 カスタムのTreeTableRowインスタンスを作成する主なユースケースでは、通常、なんらかの形式の複数の列の範囲を処理するためのサポートを導入します。

        TreeTableColumnクラスのcellFactoryプロパティに適切な関数を割り当てて、列ごとにカスタムのTableCellインスタンスを作成できます。

        関連項目:
        getRowFactory()setRowFactory(Callback)
      • placeholder

        public final ObjectProperty<Node> placeholderProperty
        表示するコンテンツが表にない場合は、このノードがユーザーに表示されます。 これは、表モデルの最初の場所にデータがないことが原因であるか、表モデルにフィルタが適用されたことで、ユーザーに何も表示されないか、現在表示可能な列がない可能性があります。
        関連項目:
        getPlaceholder()setPlaceholder(Node)
      • fixedCellSize

        public final DoubleProperty fixedCellSizeProperty
        このコントロールが指定された値の固定された高さであるセルを持つかどうかを指定します。 この値がゼロ以下の場合、すべてのセルは個別にサイズと位置が設定されます。 この操作には時間がかかります。 このため、パフォーマンスが重要で、開発者が可変セル・サイズに依存しないときは、固定セル・サイズ値を設定することをお薦めします。 一般的に、セルは24px前後であるため、固定セル・サイズを24に設定すると、ビジュアルをほとんど変化させることなく、パフォーマンスが向上します。

        CSSでこのプロパティを設定するには、-fx-fixed-cell-sizeプロパティを使用します。 これを-fx-cell-sizeプロパティと混同しないでください。 この2つのCSSプロパティ間の違いは、-fx-cell-sizeではすべてのセルを指定されたサイズに設定しますが、これが唯一のサイズとはならないことです(このため、可変セル・サイズが許容され、パフォーマンスの向上を妨げる可能性があります)。 このため、パフォーマンスを重視する場合は、-fx-cell-sizeではなく-fx-fixed-cell-sizeを使用してください。 CSSに両方のプロパティを指定した場合は、-fx-fixed-cell-sizeが優先されます。

        導入されたバージョン:
        JavaFX 8.0
        関連項目:
        getFixedCellSize()setFixedCellSize(double)
      • comparator

        public final ReadOnlyObjectProperty<Comparator<TreeItem<S>>> comparatorProperty
        コンパレータ・プロパティは、sort orderリストの現在の状態を表す読取り専用プロパティです。 ソート順序のリストには、プログラムによって、またはヘッダー自体をユーザーがクリックしてそれに追加された列が含まれます。
        関連項目:
        getComparator()
      • sortPolicy

        public final ObjectProperty<Callback<TreeTableView<S>,Boolean>> sortPolicyProperty
        ソート・ポリシーでは、このTreeTableViewのソートの実行方法を指定します。 たとえば、基本的なソート・ポリシーでは単に、ルート・ツリー・アイテムの子を再帰的にソートできますが、より高度なソート・ポリシーではデータベースに対する呼出しを行い、サーバー側で必要なソートを実行できます。

        TreeTableViewには、前述のとおり、単にインプレースでツリー階層のソートを試行するdefault sort policyが付属しています。

        sortメソッドのオーバーライドではなく、かわりに別のソート・ポリシーを指定することをお薦めします。

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

      • UNCONSTRAINED_RESIZE_POLICY

        public static final Callback<TreeTableView.ResizeFeatures,Boolean> UNCONSTRAINED_RESIZE_POLICY

        単に、指定された列を指定されたデルタでサイズ変更し、(指定された列の右側にある)他のすべての列を(デルタが正の場合には)右側に、または(デルタが負の場合には)左側にシフトする、非常に単純なサイズ変更ポリシー。

        また、これは、新しいスペースを共有することによって、または削除されたスペースをすべての直下の子の列間で均等に差し引くことによって、列をネストしているケースも処理します。 直下の子はそれ自体をネストでき、次にそれらがその子に対してこのポリシーを使用します。

      • CONSTRAINED_RESIZE_POLICY

        public static final Callback<TreeTableView.ResizeFeatures,Boolean> CONSTRAINED_RESIZE_POLICY

        この表内の表示可能なすべてのリーフ列の幅を合計すると、この表自体の幅と等しくなるようにする単純なポリシー。

        ユーザーがこのポリシーで列の幅をサイズ変更すると、表で右側の列の幅が自動的に調整されます。 ユーザーが列の幅を拡大すると、表で右端の列の幅がその最小幅に達するまでそれが縮小されます。 次に、右から2番目の列の幅がその最小幅に達するまでそれが縮小されます(以下同様)。 すべての右側の列が最小サイズに達すると、ユーザーはサイズ変更する列のサイズをそれ以上拡大できません。

      • DEFAULT_SORT_POLICY

        public static final Callback<TreeTableView,Boolean> DEFAULT_SORT_POLICY
        他のポリシーが指定されていない場合に、このTreeTableViewで使用されるデフォルトのsort policy ソート・ポリシーは、TreeTableViewを唯一の引数として受け入れて、ソートが成功したかどうかを表すブールのレスポンスを期待する単純なCallbackです。 ブールのtrueのレスポンスは成功を表し、false (またはnull)のレスポンスは失敗を表すとみなされます。
    • コンストラクタの詳細

      • TreeTableView

        public TreeTableView()
        空のTreeTableViewを作成します。

        その他のプロパティのデフォルトの状態の詳細は、TreeTableViewクラスのドキュメントを参照してください。

      • TreeTableView

        public TreeTableView​(TreeItem<S> root)
        指定されたルート・ノードを使用してTreeTableViewを作成します。

        その他のプロパティのデフォルトの状態の詳細は、TreeTableViewクラスのドキュメントを参照してください。

        パラメータ:
        root - このTreeTableViewのルートとなるノード。
    • メソッドの詳細

      • editAnyEvent

        public static <S> EventType<TreeTableView.EditEvent<S>> editAnyEvent()
        なんらかの編集イベントが発生したことを示すEventType。 これは、他のすべての編集イベント(editStartEvent()editCommitEvent()およびeditCancelEvent())の親タイプです。
        型パラメータ:
        S - このTreeTableViewで使用されるTreeItemインスタンスの型
        戻り値:
        なんらかの編集イベントが発生したことを示すEventType
      • editStartEvent

        public static <S> EventType<TreeTableView.EditEvent<S>> editStartEvent()
        TreeTableViewに対して起動された編集イベントが開始されたことを示すEventType。
        型パラメータ:
        S - このTreeTableViewで使用されるTreeItemインスタンスの型
        戻り値:
        編集イベントが開始されたことを示すために使用されるEventType
      • editCancelEvent

        public static <S> EventType<TreeTableView.EditEvent<S>> editCancelEvent()
        TreeTableViewに対して起動された編集イベントが取り消されたことを示すEventType。
        型パラメータ:
        S - このTreeTableViewで使用されるTreeItemインスタンスの型
        戻り値:
        編集イベントが取り消されたことを示すために使用されるEventType
      • editCommitEvent

        public static <S> EventType<TreeTableView.EditEvent<S>> editCommitEvent()
        TreeTableViewの編集がコミットされたことを示すEventType。 これは、ユーザーがTreeItemのデータを変更しており、UIを更新する必要があることを意味します。
        型パラメータ:
        S - このTreeTableViewで使用されるTreeItemインスタンスの型
        戻り値:
        TreeTableViewの編集がコミットされたことを示すEventType
      • getNodeLevel

        @Deprecated(since="8u20")
        public static int getNodeLevel​(TreeItem<?> node)
        非推奨。
        このメソッドでは、指定されたTreeItemからTreeTableViewのルートまでの距離が正しく計算されません。 JavaFX 8.0_20では、これを行う適切な方法は、getTreeItemLevel(TreeItem)を使用することです。
        TreeItem.getParent()を再帰的に呼び出すことができる回数に基づいて、特定のTreeItemのインデントのレベル数を返します。 TreeItemに親セットがない場合は、返される値はゼロになります。 getParent()が再帰的に呼び出されるたびに、返される値が1つずつ増えていきます。

        重要な注意: このメソッドはルート・ノードを考慮しないため、それは非推奨です。 これは、ルート・ノードに親がある場合に、このメソッドがTreeTableViewコントロールのルート・ノードを超えて繰り返されることを意味します。 このことが重要である場合は、かわりにgetTreeItemLevel(TreeItem)を呼び出します。

        パラメータ:
        node - レベルが必要なTreeItem。
        戻り値:
        特定のノードの上の親の数を表す整数、または特定のTreeItemがnullの場合は-1。
      • setRoot

        public final void setRoot​(TreeItem<S> value)
        このTreeTableViewのルート・ノードを設定します。 詳細は、TreeItemクラス・レベルのドキュメントを参照してください。
        パラメータ:
        value - TreeTableViewのルートに配置されるTreeItem
      • getRoot

        public final TreeItem<S> getRoot()
        このTreeTableViewの現在のルート・ノードを返すか、ルート・ノードが指定されていない場合はnullを返します。
        戻り値:
        現在のルート・ノード、またはルート・ノードが存在しない場合はnull。
      • rootProperty

        public final ObjectProperty<TreeItem<S>> rootProperty()
        TreeTableViewのルート・ノードを表すプロパティ。
        戻り値:
        ルート・プロパティ
      • setShowRoot

        public final void setShowRoot​(boolean value)
        ルートTreeItemがこのTreeTableView内で表示されるかどうかを指定します。
        パラメータ:
        value - trueの場合はルートTreeItemが表示され、falseの場合はそれが非表示になります。
      • isShowRoot

        public final boolean isShowRoot()
        TreeTableViewのルートが表示される場合はtrue、されない場合はfalseを返します。 デフォルトでは、TreeTableViewのルートTreeItemは表示されます。
        戻り値:
        TreeTableViewのルートを表示する必要がある場合はtrue
      • treeColumnProperty

        public final ObjectProperty<TreeTableColumn<S,?>> treeColumnProperty()
        公開ノードが内部に表示される列(つまり、矢印を使用した列)を表すプロパティ。 デフォルトでは、これはこのプロパティがnullの場合は左端の列で、それ以外の場合はそれは指定した列になります(それはnull以外でvisible leaf columnsリストに含まれていることを想定しています)。
        関連項目:
        getTreeColumn()setTreeColumn(TreeTableColumn)
      • setTreeColumn

        public final void setTreeColumn​(TreeTableColumn<S,?> value)
        プロパティtreeColumnの値を設定します。
        プロパティの説明:
        公開ノードが内部に表示される列(つまり、矢印を使用した列)を表すプロパティ。 デフォルトでは、これはこのプロパティがnullの場合は左端の列で、それ以外の場合はそれは指定した列になります(それはnull以外でvisible leaf columnsリストに含まれていることを想定しています)。
      • getTreeColumn

        public final TreeTableColumn<S,?> getTreeColumn()
        プロパティtreeColumnの値を取得します。
        プロパティの説明:
        公開ノードが内部に表示される列(つまり、矢印を使用した列)を表すプロパティ。 デフォルトでは、これはこのプロパティがnullの場合は左端の列で、それ以外の場合はそれは指定した列になります(それはnull以外でvisible leaf columnsリストに含まれていることを想定しています)。
      • getSelectionModel

        public final TreeTableView.TreeTableViewSelectionModel<S> getSelectionModel()
        現在インストールされている選択モデルを返します。
        戻り値:
        現在インストールされている選択モデル
      • expandedItemCountProperty

        public final ReadOnlyIntegerProperty expandedItemCountProperty()

        TreeTableViewに現在表示できるツリー・ノードの数を表します。 これは基本的に、すべての展開されたツリー・アイテムとその子の数です。

        たとえば、ルート・ノードのみが表示されている場合は、expandedItemCountは1になります。 ルートに3つの子があり、ルートが展開されていた場合は、値は4になります。

        関連項目:
        getExpandedItemCount()
      • getExpandedItemCount

        public final int getExpandedItemCount()
        プロパティexpandedItemCountの値を取得します。
        プロパティの説明:

        TreeTableViewに現在表示できるツリー・ノードの数を表します。 これは基本的に、すべての展開されたツリー・アイテムとその子の数です。

        たとえば、ルート・ノードのみが表示されている場合は、expandedItemCountは1になります。 ルートに3つの子があり、ルートが展開されていた場合は、値は4になります。

      • setEditable

        public final void setEditable​(boolean value)
        プロパティeditableの値を設定します。
        プロパティの説明:
        このTreeTableViewが編集可能かどうかを指定します - TreeTableViewおよびその中のTreeCellが両方とも編集可能な場合にのみ、TreeCellが編集状態になります。
      • isEditable

        public final boolean isEditable()
        プロパティeditableの値を取得します。
        プロパティの説明:
        このTreeTableViewが編集可能かどうかを指定します - TreeTableViewおよびその中のTreeCellが両方とも編集可能な場合にのみ、TreeCellが編集状態になります。
      • editableProperty

        public final BooleanProperty editableProperty()
        このTreeTableViewが編集可能かどうかを指定します - TreeTableViewおよびその中のTreeCellが両方とも編集可能な場合にのみ、TreeCellが編集状態になります。
        関連項目:
        isEditable()setEditable(boolean)
      • getEditingCell

        public final TreeTablePosition<S,?> getEditingCell()
        プロパティeditingCellの値を取得します。
        プロパティの説明:
        編集されている現在のセルか、編集されているセルがない場合はnullを表します。
      • tableMenuButtonVisibleProperty

        public final BooleanProperty tableMenuButtonVisibleProperty()
        これは、TableView内の指定されたスペースをユーザーがクリックするとメニュー・ボタンを使用可能にするかどうかを制御します。ここには、この表の各TreeTableColumnのラジオ・メニュー・アイテムが表示されます。 このメニューにより、ユーザーがすべてのTreeTableColumnの表示と非表示を簡単に切り替えることができます。
        関連項目:
        isTableMenuButtonVisible()setTableMenuButtonVisible(boolean)
      • setTableMenuButtonVisible

        public final void setTableMenuButtonVisible​(boolean value)
        プロパティtableMenuButtonVisibleの値を設定します。
        プロパティの説明:
        これは、TableView内の指定されたスペースをユーザーがクリックするとメニュー・ボタンを使用可能にするかどうかを制御します。ここには、この表の各TreeTableColumnのラジオ・メニュー・アイテムが表示されます。 このメニューにより、ユーザーがすべてのTreeTableColumnの表示と非表示を簡単に切り替えることができます。
      • isTableMenuButtonVisible

        public final boolean isTableMenuButtonVisible()
        プロパティtableMenuButtonVisibleの値を取得します。
        プロパティの説明:
        これは、TableView内の指定されたスペースをユーザーがクリックするとメニュー・ボタンを使用可能にするかどうかを制御します。ここには、この表の各TreeTableColumnのラジオ・メニュー・アイテムが表示されます。 このメニューにより、ユーザーがすべてのTreeTableColumnの表示と非表示を簡単に切り替えることができます。
      • setColumnResizePolicy

        public final void setColumnResizePolicy​(Callback<TreeTableView.ResizeFeatures,Boolean> callback)
        プロパティcolumnResizePolicyの値を設定します。
        プロパティの説明:
        これは、ユーザーが列のサイズ変更操作を完了する場合に呼び出されるファンクションです。 TableViewクラスの静的関数として、2つの最も一般的なポリシーであるUNCONSTRAINED_RESIZE_POLICYCONSTRAINED_RESIZE_POLICYを使用できます。
      • getColumnResizePolicy

        public final Callback<TreeTableView.ResizeFeatures,Boolean> getColumnResizePolicy()
        プロパティcolumnResizePolicyの値を取得します。
        プロパティの説明:
        これは、ユーザーが列のサイズ変更操作を完了する場合に呼び出されるファンクションです。 TableViewクラスの静的関数として、2つの最も一般的なポリシーであるUNCONSTRAINED_RESIZE_POLICYCONSTRAINED_RESIZE_POLICYを使用できます。
      • rowFactoryProperty

        public final ObjectProperty<Callback<TreeTableView<S>,TreeTableRow<S>>> rowFactoryProperty()
        TreeTableRowを生成する関数。 TreeTableRowの再利用はシステムによって行われます。 この関数から、TableViewの単一行を表すために使用できる可能性があるTreeTableRowを返します。

        TreeTableRowはTableCellではないことに注意してください。 TreeTableRowは単にTableCellのコンテナで、ほとんどの状況において、TreeTableRowよりも、カスタムのTableCellを作成することの方が多くなります。 カスタムのTreeTableRowインスタンスを作成する主なユースケースでは、通常、なんらかの形式の複数の列の範囲を処理するためのサポートを導入します。

        TreeTableColumnクラスのcellFactoryプロパティに適切な関数を割り当てて、列ごとにカスタムのTableCellインスタンスを作成できます。

        関連項目:
        getRowFactory()setRowFactory(Callback)
      • setRowFactory

        public final void setRowFactory​(Callback<TreeTableView<S>,TreeTableRow<S>> value)
        プロパティrowFactoryの値を設定します。
        プロパティの説明:
        TreeTableRowを生成する関数。 TreeTableRowの再利用はシステムによって行われます。 この関数から、TableViewの単一行を表すために使用できる可能性があるTreeTableRowを返します。

        TreeTableRowはTableCellではないことに注意してください。 TreeTableRowは単にTableCellのコンテナで、ほとんどの状況において、TreeTableRowよりも、カスタムのTableCellを作成することの方が多くなります。 カスタムのTreeTableRowインスタンスを作成する主なユースケースでは、通常、なんらかの形式の複数の列の範囲を処理するためのサポートを導入します。

        TreeTableColumnクラスのcellFactoryプロパティに適切な関数を割り当てて、列ごとにカスタムのTableCellインスタンスを作成できます。

      • getRowFactory

        public final Callback<TreeTableView<S>,TreeTableRow<S>> getRowFactory()
        プロパティrowFactoryの値を取得します。
        プロパティの説明:
        TreeTableRowを生成する関数。 TreeTableRowの再利用はシステムによって行われます。 この関数から、TableViewの単一行を表すために使用できる可能性があるTreeTableRowを返します。

        TreeTableRowはTableCellではないことに注意してください。 TreeTableRowは単にTableCellのコンテナで、ほとんどの状況において、TreeTableRowよりも、カスタムのTableCellを作成することの方が多くなります。 カスタムのTreeTableRowインスタンスを作成する主なユースケースでは、通常、なんらかの形式の複数の列の範囲を処理するためのサポートを導入します。

        TreeTableColumnクラスのcellFactoryプロパティに適切な関数を割り当てて、列ごとにカスタムのTableCellインスタンスを作成できます。

      • placeholderProperty

        public final ObjectProperty<Node> placeholderProperty()
        表示するコンテンツが表にない場合は、このノードがユーザーに表示されます。 これは、表モデルの最初の場所にデータがないことが原因であるか、表モデルにフィルタが適用されたことで、ユーザーに何も表示されないか、現在表示可能な列がない可能性があります。
        関連項目:
        getPlaceholder()setPlaceholder(Node)
      • setPlaceholder

        public final void setPlaceholder​(Node value)
        プロパティ・プレースホルダの値を設定します。
        プロパティの説明:
        表示するコンテンツが表にない場合は、このノードがユーザーに表示されます。 これは、表モデルの最初の場所にデータがないことが原因であるか、表モデルにフィルタが適用されたことで、ユーザーに何も表示されないか、現在表示可能な列がない可能性があります。
      • getPlaceholder

        public final Node getPlaceholder()
        プロパティ・プレースホルダの値を取得します。
        プロパティの説明:
        表示するコンテンツが表にない場合は、このノードがユーザーに表示されます。 これは、表モデルの最初の場所にデータがないことが原因であるか、表モデルにフィルタが適用されたことで、ユーザーに何も表示されないか、現在表示可能な列がない可能性があります。
      • setFixedCellSize

        public final void setFixedCellSize​(double value)
        このコントロールの新しい固定セル・サイズを設定します。 値をゼロよりも大きくすると固定セル・サイズ・モードが有効になり、ゼロまたは負の値(またはRegion.USE_COMPUTED_SIZE)を使用すると固定セル・サイズ・モードが無効になります。
        パラメータ:
        value - 新しい固定セル・サイズ値。無効にするには、ゼロ以下の値(または、Region.USE_COMPUTED_SIZE)にします。
        導入されたバージョン:
        JavaFX 8.0
      • getFixedCellSize

        public final double getFixedCellSize()
        固定セル・サイズ値を返します。 ゼロ以下の値は固定セル・サイズ・モードが無効になっていることを表す場合に使用し、ゼロよりも大きい値はこのコントロールのすべてのセルのサイズを表す場合に使用します。
        戻り値:
        このコントロールの固定セル・サイズを表す倍精度浮動小数点。固定セル・サイズ・モードが無効である場合にはゼロ以下の値にします。
        導入されたバージョン:
        JavaFX 8.0
      • fixedCellSizeProperty

        public final DoubleProperty fixedCellSizeProperty()
        このコントロールが指定された値の固定された高さであるセルを持つかどうかを指定します。 この値がゼロ以下の場合、すべてのセルは個別にサイズと位置が設定されます。 この操作には時間がかかります。 このため、パフォーマンスが重要で、開発者が可変セル・サイズに依存しないときは、固定セル・サイズ値を設定することをお薦めします。 一般的に、セルは24px前後であるため、固定セル・サイズを24に設定すると、ビジュアルをほとんど変化させることなく、パフォーマンスが向上します。

        CSSでこのプロパティを設定するには、-fx-fixed-cell-sizeプロパティを使用します。 これを-fx-cell-sizeプロパティと混同しないでください。 この2つのCSSプロパティ間の違いは、-fx-cell-sizeではすべてのセルを指定されたサイズに設定しますが、これが唯一のサイズとはならないことです(このため、可変セル・サイズが許容され、パフォーマンスの向上を妨げる可能性があります)。 このため、パフォーマンスを重視する場合は、-fx-cell-sizeではなく-fx-fixed-cell-sizeを使用してください。 CSSに両方のプロパティを指定した場合は、-fx-fixed-cell-sizeが優先されます。

        導入されたバージョン:
        JavaFX 8.0
        関連項目:
        getFixedCellSize()setFixedCellSize(double)
      • setSortMode

        public final void setSortMode​(TreeSortMode value)
        プロパティsortModeの値を設定します。
        プロパティの説明:
        列をsort orderリストで指定する場合、このTreeTableViewのコンテンツをソートするときに使用するソート・モードを指定します。
      • getSortMode

        public final TreeSortMode getSortMode()
        プロパティsortModeの値を取得します。
        プロパティの説明:
        列をsort orderリストで指定する場合、このTreeTableViewのコンテンツをソートするときに使用するソート・モードを指定します。
      • getComparator

        public final Comparator<TreeItem<S>> getComparator()
        プロパティcomparatorの値を取得します。
        プロパティの説明:
        コンパレータ・プロパティは、sort orderリストの現在の状態を表す読取り専用プロパティです。 ソート順序のリストには、プログラムによって、またはヘッダー自体をユーザーがクリックしてそれに追加された列が含まれます。
      • comparatorProperty

        public final ReadOnlyObjectProperty<Comparator<TreeItem<S>>> comparatorProperty()
        コンパレータ・プロパティは、sort orderリストの現在の状態を表す読取り専用プロパティです。 ソート順序のリストには、プログラムによって、またはヘッダー自体をユーザーがクリックしてそれに追加された列が含まれます。
        関連項目:
        getComparator()
      • setSortPolicy

        public final void setSortPolicy​(Callback<TreeTableView<S>,Boolean> callback)
        プロパティsortPolicyの値を設定します。
        プロパティの説明:
        ソート・ポリシーでは、このTreeTableViewのソートの実行方法を指定します。 たとえば、基本的なソート・ポリシーでは単に、ルート・ツリー・アイテムの子を再帰的にソートできますが、より高度なソート・ポリシーではデータベースに対する呼出しを行い、サーバー側で必要なソートを実行できます。

        TreeTableViewには、前述のとおり、単にインプレースでツリー階層のソートを試行するdefault sort policyが付属しています。

        sortメソッドのオーバーライドではなく、かわりに別のソート・ポリシーを指定することをお薦めします。

      • getSortPolicy

        public final Callback<TreeTableView<S>,Boolean> getSortPolicy()
        プロパティsortPolicyの値を取得します。
        プロパティの説明:
        ソート・ポリシーでは、このTreeTableViewのソートの実行方法を指定します。 たとえば、基本的なソート・ポリシーでは単に、ルート・ツリー・アイテムの子を再帰的にソートできますが、より高度なソート・ポリシーではデータベースに対する呼出しを行い、サーバー側で必要なソートを実行できます。

        TreeTableViewには、前述のとおり、単にインプレースでツリー階層のソートを試行するdefault sort policyが付属しています。

        sortメソッドのオーバーライドではなく、かわりに別のソート・ポリシーを指定することをお薦めします。

      • sortPolicyProperty

        public final ObjectProperty<Callback<TreeTableView<S>,Boolean>> sortPolicyProperty()
        ソート・ポリシーでは、このTreeTableViewのソートの実行方法を指定します。 たとえば、基本的なソート・ポリシーでは単に、ルート・ツリー・アイテムの子を再帰的にソートできますが、より高度なソート・ポリシーではデータベースに対する呼出しを行い、サーバー側で必要なソートを実行できます。

        TreeTableViewには、前述のとおり、単にインプレースでツリー階層のソートを試行するdefault sort policyが付属しています。

        sortメソッドのオーバーライドではなく、かわりに別のソート・ポリシーを指定することをお薦めします。

        関連項目:
        getSortPolicy()setSortPolicy(Callback)
      • setOnSort

        public void setOnSort​(EventHandler<SortEvent<TreeTableView<S>>> value)
        プロパティonSortの値を設定します。
        プロパティの説明:
        コントロールをソートするリクエストがある場合に呼び出されます。
      • getOnSort

        public EventHandler<SortEvent<TreeTableView<S>>> getOnSort()
        プロパティonSortの値を取得します。
        プロパティの説明:
        コントロールをソートするリクエストがある場合に呼び出されます。
      • scrollTo

        public void scrollTo​(int index)
        特定のインデックスのアイテムがエンド・ユーザーに表示されるように、TreeTableViewをスクロールします。
        パラメータ:
        index - ユーザーに表示されるようにするインデックス。0以上で、TreeTableViewの表示可能なアイテムの数未満であることを想定しています。
      • setOnScrollTo

        public void setOnScrollTo​(EventHandler<ScrollToEvent<Integer>> value)
        プロパティonScrollToの値を設定します。
        プロパティの説明:
        scrollTo(int)を使用してビューのインデックスをスクロールするリクエストがある場合に呼び出されます。
      • getOnScrollTo

        public EventHandler<ScrollToEvent<Integer>> getOnScrollTo()
        プロパティonScrollToの値を取得します。
        プロパティの説明:
        scrollTo(int)を使用してビューのインデックスをスクロールするリクエストがある場合に呼び出されます。
      • scrollToColumn

        public void scrollToColumn​(TreeTableColumn<S,?> column)
        TreeTableViewをスクロールして、指定された列がビューポート内に表示されるようにします。
        パラメータ:
        column - ユーザーに表示される列。
      • scrollToColumnIndex

        public void scrollToColumnIndex​(int columnIndex)
        特定のインデックスがビューポート内に表示されるように、TreeTableViewをスクロールします。
        パラメータ:
        columnIndex - ユーザーに表示される列のインデックス。
      • getRow

        public int getRow​(TreeItem<S> item)
        ツリー階層(最も顕著なのは、すべての親ツリー・アイテムが展開されていることです)から現在アクセス可能であると仮定して、指定されたTreeItemのインデックス位置を返します。 親ツリー・アイテムが折りたたまれている場合、このメソッドは -1を返し、指定されたツリー・アイテムがツリー内でアクセス可能でないことを示します。
        パラメータ:
        item - インデックスが検索されるTreeItem。
        戻り値:
        指定されたTreeItemの最初のインスタンスの現在のTreeTableView内のロケーションを表す整数。ヌルまたは見つからない場合は -1 (たとえば、親(ルートまでのすべての方法)が折りたたまれている場合)。
      • getTreeItem

        public TreeItem<S> getTreeItem​(int row)
        指定されたインデックスのTreeItemを返すか、範囲外である場合はnullを返します。
        パラメータ:
        row - 検索されているTreeItemのインデックス。
        戻り値:
        特定のインデックスのTreeItem、またはそれが範囲外の場合はnull。
      • getTreeItemLevel

        public int getTreeItemLevel​(TreeItem<?> node)
        getParent()を再帰的に呼び出すことができる回数に基づいて、指定されたTreeItemのインデントのレベル数を返します。 特定のTreeItemがこのTreeTableViewのルート・ノードである場合、またはTreeItemに親セットがない場合は、返される値はゼロになります。 getParent()が再帰的に呼び出されるたびに、返される値が1つずつ増えていきます。
        パラメータ:
        node - レベルが必要なTreeItem。
        戻り値:
        特定のノードの上の親の数を表す整数、または特定のTreeItemがnullの場合は-1。
      • getColumns

        public final ObservableList<TreeTableColumn<S,?>> getColumns()
        このTableViewの一部であるTreeTableColumn。 ユーザーがTableViewの列を並び替えると、このリストが更新されて最新の表示順序が反映されます。

        注意: TableViewにデータを表示するには、このObservableListに1つ以上のTreeTableColumnが必要です。

        戻り値:
        表表の列
      • getSortOrder

        public final ObservableList<TreeTableColumn<S,?>> getSortOrder()
        sortOrderリストは、TreeTableColumnインスタンスのソート順序を定義します。 空のsortOrderリストは、TableViewにソートが適用されていないことを意味します。 sortOrderリスト内に1つのTreeTableColumnがある場合は、このTreeTableColumnのsortTypecomparatorのプロパティを使用してTableViewがソートされます(TreeTableColumn.sortableがtrueであることを想定しています)。 sortOrderリストに複数のTreeTableColumnインスタンスが含まれる場合は、まず最初のTreeTableColumnのプロパティに基づいて、TableViewがソートされます。 2つの要素が等しいとみなされる場合は、リストの2つ目のTreeTableColumnが使用されて順序が決定します。 これは、必要に応じてすべてのTreeTableColumnコンパレータからの結果が考慮されるまで繰り返されます。
        戻り値:
        ゼロ個以上のTreeTableColumnインスタンスを含むObservableList。
      • resizeColumn

        public boolean resizeColumn​(TreeTableColumn<S,?> column,
                                    double delta)
        現在導入されているサイズ変更ポリシーを指定された列に適用し、指定されたデルタ値に基づいてサイズ変更します。
        パラメータ:
        column - 列
        delta - デルタ
        戻り値:
        列のサイズ変更が適用される場合はtrue
      • edit

        public void edit​(int row,
                         TreeTableColumn<S,?> column)
        指定された行/列のビュー・インデックスのセルが、まだ編集モードでない場合は編集モードに切り替わり、TableViewおよび列も編集可能とみなされます。
        パラメータ:
        row - 行
        column - 列
      • getVisibleLeafColumns

        public ObservableList<TreeTableColumn<S,?>> getVisibleLeafColumns()
        現在表示されているリーフ列を含む変更不可能なリストを返します。
        戻り値:
        現在表示されているリーフの列を含む変更不可能なリスト
      • getVisibleLeafIndex

        public int getVisibleLeafIndex​(TreeTableColumn<S,?> column)
        他のすべての表示されているリーフ列に対して相対的な、指定された列の位置を返します。
        パラメータ:
        column - 列
        戻り値:
        指定された列の他の表示されているすべてのリーフ列に対する相対位置
      • getVisibleLeafColumn

        public TreeTableColumn<S,?> getVisibleLeafColumn​(int column)
        他のすべての表示されているリーフ列に対して相対的な、指定された列インデックスのTreeTableColumnを返します。
        パラメータ:
        column - 列
        戻り値:
        指定された列のインデックスのTreeTableColumn
      • sort

        public void sort()
        sortメソッドにより、TreeTableViewでそのソート・アルゴリズムが強制的に再実行されます。 このメソッドはsort ordersort policyまたはTreeTableColumnのsort typeプロパティの状態が変更されたときに自動的に呼び出されるため、多くの場合、それを直接呼び出す必要はありません。 つまり、このメソッドは、外部のものが変更されソートが必要な場合にのみ、直接呼び出される必要があります。
      • refresh

        public void refresh()
        refresh()を呼び出すと、TreeTableViewコントロールは、コントロールのビジュアル境界を設定するために必要なセルを再作成して再投入します。 つまり、これにより、TreeTableViewはユーザーに表示している内容を更新します。 これは、基礎となるデータソースがTreeTableView自体によって観察されないように変更された場合に便利です。
        導入されたバージョン:
        JavaFX 8u60
      • getClassCssMetaData

        public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
        戻り値:
        このクラスに関連付けられたCssMetaData。スーパークラスのCssMetaDataを含むことがあります。
      • getControlCssMetaData

        public List<CssMetaData<? extends Styleable,?>> getControlCssMetaData()
        オーバーライド:
        getControlCssMetaData 、クラス: Control
        戻り値:
        コントロールのCSSでスタイル設定可能なプロパティの変更不可能なリスト
        導入されたバージョン:
        JavaFX 8.0