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

クラスTableView<S>

  • 型パラメータ:
    S - TableViewアイテム・リスト内に含まれるオブジェクトのタイプ。
    すべての実装されたインタフェース:
    Styleable, EventTarget, Skinnable

    @DefaultProperty("items")
    public class TableView<S>
    extends Control
    TableViewコントロールは、無制限の数のデータ行と列を視覚化するために設計されています。 したがって、TableViewはListViewコントロールに非常に似ており、さらに列をサポートします。 TableViewの作成方法の例については、後述の項「TableViewの作成」を参照してください。

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

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

    TableViewはデータの視覚化に使用することを目的したもので、それはユーザー・インタフェースのレイアウトに使用することを目的としていないことに注意してください。 グリッド形式でユーザー・インタフェースをレイアウトする場合は、かわりにGridPaneレイアウトを検討してください。

    TableViewの作成

    TableViewの作成は、複数のステップからなるプロセスで、表現する必要がある基礎となるデータ・モデルに応じて異なります。 この例では、ObservableList <Person>を使用します。これは、TableViewでデータを表示する最も簡単な方法です。 Personクラスは、姓と名のプロパティで構成されます。 つまり、次のようになります。

     
     public class Person {
         private StringProperty firstName;
         public void setFirstName(String value) { firstNameProperty().set(value); }
         public String getFirstName() { return firstNameProperty().get(); }
         public StringProperty firstNameProperty() {
             if (firstName == null) firstName = new SimpleStringProperty(this, "firstName");
             return firstName;
         }
    
         private StringProperty lastName;
         public void setLastName(String value) { lastNameProperty().set(value); }
         public String getLastName() { return lastNameProperty().get(); }
         public StringProperty lastNameProperty() {
             if (lastName == null) lastName = new SimpleStringProperty(this, "lastName");
             return lastName;
         }
     }

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

     
     TableView<Person> table = new TableView<>();

    次に、定義された基本的な表で、データ・モデルをフォーカスします。 前述のように、この例ではObservableList <Person>を使用します。 そのようなリストは、次のように、すぐにTableViewに直接設定できます。

     
     ObservableList<Person> teamMembers = getTeamMembers();
     table.setItems(teamMembers);

    このように設定されたアイテムにより、teamMembersリストが変更されると、TableViewが自動的に更新されます。 TableViewがインスタンス化される前にアイテム・リストが使用可能になると、それがコンストラクタに直接渡される可能性があります。

    この時点で、teamMembersのobservableListを監視するために、TableViewが構成されました。 この時点で欠けている構成要素は、モデル内に含まれているデータを分割する方法と、それを1つ以上のTableColumnインスタンスで表現する方法です。 2列のTableViewを作成して、firstNameとlastNameのプロパティを表示するには、次のように直前のコード・サンプルを拡張します。

     
     ObservableList<Person> teamMembers = ...;
     table.setItems(teamMembers);
    
     TableColumn<Person,String> firstNameCol = new TableColumn<>("First Name");
     firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));
     TableColumn<Person,String> lastNameCol = new TableColumn<>("Last Name");
     lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));
    
     table.getColumns().setAll(firstNameCol, lastNameCol);

    前述のコードで、TableViewインスタンスの作成に最低限必要なプロパティを完全に定義しました。 このコード(人のObservableListが適切に作成されていることを想定しています)を実行すると、firstNameとlastNameの2つの列を持つTableViewが表示されます。 TableColumnが定義されない場合は、Personクラスの他のプロパティは表示されません。

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

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

     
     firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
         public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
             // p.getValue() returns the Person instance for a particular TableView row
             return p.getValue().firstNameProperty();
         }
     });
    
     // or with a lambda expression:
     firstNameCol.setCellValueFactory(p -> p.getValue().firstNameProperty());
     

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

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

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

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

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

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

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

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

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

    ソート

    JavaFX 8.0より前では、TableViewコントロールによってitemsリストが表示モデルとして処理されており、これはリストに対する変更がすぐに視覚的に反映されることを意味します。 また、ユーザーがソートを開始したときに、TableViewによってこのリストの順序が直接変更されていました。 このことは、(繰り返しますが、JavaFX 8.0より前では)TableViewで(昇順と降順を繰り返した後で)未ソートの状態に戻すことができなかったことを意味します。

    JavaFX 8.0以降(およびSortedListの導入)で、TableViewのsort orderの一部である列がない場合に、コレクションを未ソートの状態に戻すことができるようになりました。 これを行うには、SortedListインスタンスを作成して、そのcomparatorプロパティをTableViewのcomparatorプロパティにバインドし、そのようにリストする必要があります。

     
     // create a SortedList based on the provided ObservableList
     SortedList sortedList = new SortedList(FXCollections.observableArrayList(2, 1, 3));
    
     // create a TableView with the sorted list set as the items it will show
     final TableView<Integer> tableView = new TableView<>(sortedList);
    
     // bind the sortedList comparator to the TableView comparator
     sortedList.comparatorProperty().bind(tableView.comparatorProperty());
    
     // Don't forget to define columns!
     

    編集

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

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

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

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

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

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

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

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

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

      • tableMenuButtonVisible

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

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

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

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

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

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

        public final BooleanProperty editableProperty
        このTableViewが編集可能かどうかを指定します - TableView、TableColumn(該当する場合)およびその中のTableCellが両方とも編集可能な場合にのみ、TableCellが編集状態になります。
        関連項目:
        isEditable()setEditable(boolean)
      • 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<S>> comparatorProperty
        コンパレータ・プロパティは、sort orderリストの現在の状態を表す読取り専用プロパティです。 ソート順序のリストには、プログラムによって、またはヘッダー自体をユーザーがクリックしてそれに追加された列が含まれます。
        導入されたバージョン:
        JavaFX 8.0
        関連項目:
        getComparator()
      • sortPolicy

        public final ObjectProperty<Callback<TableView<S>,Boolean>> sortPolicyProperty
        ソート・ポリシーでは、このTableViewのソートの実行方法を指定します。 たとえば、基本的なソート・ポリシーでは単に、FXCollections.sort(tableView.getItems())を呼び出すことができますが、より高度なソート・ポリシーではデータベースに対する呼出しを行い、サーバー側で必要なソートを実行できます。

        TableViewには、前述のように、単にインプレースでアイテム・リストのソートを試行するdefault sort policyが付属しています。

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

        導入されたバージョン:
        JavaFX 8.0
        関連項目:
        getSortPolicy()setSortPolicy(Callback)
    • フィールドの詳細

      • UNCONSTRAINED_RESIZE_POLICY

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

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

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

      • CONSTRAINED_RESIZE_POLICY

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

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

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

      • DEFAULT_SORT_POLICY

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

      • TableView

        public TableView()
        コンテンツのないデフォルトのTableViewコントロールを作成します。

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

      • TableView

        public TableView​(ObservableList<S> items)
        アイテムObservableListに指定されたコンテンツを含むTableViewを作成します。 これにより、オブザーバも設定され、アイテム・リストに対する変更がTableView自体にすぐに反映されるようになります。

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

        パラメータ:
        items - TableViewに挿入するアイテム、および変更をウォッチするリスト(TableViewに自動的に表示するため)。
    • メソッドの詳細

      • setItems

        public final void setItems​(ObservableList<S> value)
        プロパティ・アイテムの値を設定します。
        プロパティの説明:
        TableViewの基礎となるデータ・モデル。 この汎用型は、TableView自体の型と一致する必要があります。
      • getItems

        public final ObservableList<S> getItems()
        プロパティ・アイテムの値を取得します。
        プロパティの説明:
        TableViewの基礎となるデータ・モデル。 この汎用型は、TableView自体の型と一致する必要があります。
      • tableMenuButtonVisibleProperty

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

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

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

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

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

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

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

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

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

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

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

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

      • getRowFactory

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

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

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

      • placeholderProperty

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

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

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

        public final void setSelectionModel​(TableView.TableViewSelectionModel<S> value)
        プロパティselectionModelの値を設定します。
        プロパティの説明:
        SelectionModelには、TableView内の1つまたは複数のアイテムを選択でき、ユーザーがどのアイテムを選択したかを調べることもできるAPIが用意されています。 この汎用型は、TableView自体の型と一致する必要があります。
      • getSelectionModel

        public final TableView.TableViewSelectionModel<S> getSelectionModel()
        プロパティselectionModelの値を取得します。
        プロパティの説明:
        SelectionModelには、TableView内の1つまたは複数のアイテムを選択でき、ユーザーがどのアイテムを選択したかを調べることもできるAPIが用意されています。 この汎用型は、TableView自体の型と一致する必要があります。
      • setFocusModel

        public final void setFocusModel​(TableView.TableViewFocusModel<S> value)
        プロパティfocusModelの値を設定します。
        プロパティの説明:
        このTableViewの現在インストールされているTableView.TableViewFocusModelを表します。 ほとんど状況では、デフォルトのフォーカス・モデルのままで十分です。
      • getFocusModel

        public final TableView.TableViewFocusModel<S> getFocusModel()
        プロパティfocusModelの値を取得します。
        プロパティの説明:
        このTableViewの現在インストールされているTableView.TableViewFocusModelを表します。 ほとんど状況では、デフォルトのフォーカス・モデルのままで十分です。
      • setEditable

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

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

        public final BooleanProperty editableProperty()
        このTableViewが編集可能かどうかを指定します - TableView、TableColumn(該当する場合)およびその中のTableCellが両方とも編集可能な場合にのみ、TableCellが編集状態になります。
        関連項目:
        isEditable()setEditable(boolean)
      • 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)
      • getEditingCell

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

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

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

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

        TableViewには、前述のように、単にインプレースでアイテム・リストのソートを試行するdefault sort policyが付属しています。

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

        導入されたバージョン:
        JavaFX 8.0
      • getSortPolicy

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

        TableViewには、前述のように、単にインプレースでアイテム・リストのソートを試行するdefault sort policyが付属しています。

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

        導入されたバージョン:
        JavaFX 8.0
      • sortPolicyProperty

        public final ObjectProperty<Callback<TableView<S>,Boolean>> sortPolicyProperty()
        ソート・ポリシーでは、このTableViewのソートの実行方法を指定します。 たとえば、基本的なソート・ポリシーでは単に、FXCollections.sort(tableView.getItems())を呼び出すことができますが、より高度なソート・ポリシーではデータベースに対する呼出しを行い、サーバー側で必要なソートを実行できます。

        TableViewには、前述のように、単にインプレースでアイテム・リストのソートを試行するdefault sort policyが付属しています。

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

        導入されたバージョン:
        JavaFX 8.0
        関連項目:
        getSortPolicy()setSortPolicy(Callback)
      • setOnSort

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

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

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

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

        戻り値:
      • getSortOrder

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

        public void scrollTo​(int index)
        特定のインデックスをビューポート内で表示できるようにTableViewをスクロールします。
        パラメータ:
        index - ユーザーに表示されるアイテムのインデックス。
      • scrollTo

        public void scrollTo​(S object)
        TableViewをスクロールして、指定されたオブジェクトがビューポート内に表示されるようにします。
        パラメータ:
        object - ユーザーに表示するオブジェクト。
        導入されたバージョン:
        JavaFX 8.0
      • setOnScrollTo

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

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

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

        public void scrollToColumnIndex​(int columnIndex)
        特定のインデックスをビューポート内で表示できるようにTableViewをスクロールします。
        パラメータ:
        columnIndex - ユーザーに表示される列のインデックス。
        導入されたバージョン:
        JavaFX 8.0
      • resizeColumn

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

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

        注意: 指定された行値が0未満であり、指定された列がnullの場合、このメソッドは編集を取り消します。

        パラメータ:
        row - 行
        column - 列
      • getVisibleLeafColumns

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

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

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

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

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

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

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