- java.lang.Object
-
- javafx.scene.control.cell.TreeItemPropertyValueFactory<S,T>
-
- すべての実装されたインタフェース:
Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>>
public class TreeItemPropertyValueFactory<S,T> extends Object implements Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>>
TreeTableColumn
セル値ファクトリ
内で使用するために特別に設計された、Callbackインタフェースの簡易実装。 このクラスの使用方法の例を次に示します。TreeTableColumn<Person,String> firstNameCol = new TreeTableColumn<Person,String>("First Name"); firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
この例では、
Person
はTreeTableView
で使用されるTreeItem
インスタンスのクラス型です。 クラスPerson
はpublic宣言されなければなりません。TreeItemPropertyValueFactory
は、コンストラクタ引数"firstName"
を使用して、Person
がパブリック・メソッドfirstNameProperty
を仮引数なしで返し、戻り値の型がObservableValue<String>
であると仮定します。そのようなメソッドが存在する場合、それは呼び出され、さらに
Property<String>
のインスタンスを返すと仮定されます。 戻り値は、TreeTableCell
を移入するために使用されます。 さらに、TreeTableView
はオブザーバを戻り値に追加し、発生した変更がTreeTableView
によって観察され、セルが直ちに更新されます。そのようなメソッドが存在しない場合、
TreeItemPropertyValueFactory
は、Person
が、パブリック・メソッドgetFirstName
またはisFirstName
を仮パラメータなしで返し、戻り値の型がString
であるとみなします。 そのようなメソッドが存在する場合は、それが呼び出され、その戻り値がReadOnlyObjectWrapper
にラップされ、TreeTableCell
に戻されます。 この場合、上記の第1のアプローチとは異なり、TreeTableCell
はプロパティの変更を監視することができません。参照用として(およびTreeTableColumn
cell value factory
ドキュメントに示されているように)、前述のコードの長い形式は次のようになります。TreeTableColumn<Person,String> firstNameCol = new TreeTableColumn<Person,String>("First Name"); 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, and the second getValue() call returns the // Person instance contained within the TreeItem. return p.getValue().getValue().firstNameProperty(); } }); }
アプリケーションをモジュールとしてデプロイ
参照先のクラスが名前付きモジュールにある場合、
javafx.base
モジュールからリフレクションによるアクセスが可能である必要があります。 モジュールが少なくともjavafx.base
モジュールに対してopens
されていればリフレクションによるアクセスが可能になります。 それ以外の場合、call(TreeTableColumn.CellDataFeatures)
メソッドは警告を記録し、null
を返します。たとえば、
Person
クラスがfoo.app
モジュールのcom.foo
パッケージにある場合、module-info.java
は次のようになります:module foo.app { opens com.foo to javafx.base; }
あるいは、モジュールがクラスを含むパッケージを無条件に
exports
すると、そのクラスに対するリフレクションによるアクセスが可能になります。- 導入されたバージョン:
- JavaFX 8.0
- 関連項目:
TreeTableColumn
、TreeTableView
、TreeTableCell
、PropertyValueFactory
、MapValueFactory
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 TreeItemPropertyValueFactory(String property)
指定されたプロパティ名を使用して、指定されたTableView行アイテムから再帰的に値を抽出するためにデフォルトのPropertyValueFactoryを作成します。
-
-
-
コンストラクタの詳細
-
TreeItemPropertyValueFactory
public TreeItemPropertyValueFactory(String property)
指定されたプロパティ名を使用して、指定されたTableView行アイテムから再帰的に値を抽出するためにデフォルトのPropertyValueFactoryを作成します。- パラメータ:
property
- 指定されたオブジェクトの対応する値を再帰的に抽出する試行に使用するプロパティの名前。
-
-
メソッドの詳細
-
getProperty
public final String getProperty()
コンストラクタで提供されるプロパティ名を返します。- 戻り値:
- コンストラクタで提供されるプロパティ名
-
-