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