- java.lang.Object
-
- javafx.scene.control.cell.PropertyValueFactory<S,T>
-
- 参数类型
-
S
- TableView.items列表中包含的类的类型。 -
T
- TableColumn单元格中包含的类的类型。
- All Implemented Interfaces:
-
Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>>
public class PropertyValueFactory<S,T> extends Object implements Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>>
Callback界面的方便实现,专为TableColumn
cell value factory
使用而设计。 如何使用这个类的一个例子是:TableColumn<Person,String> firstNameCol = new TableColumn<Person,String>("First Name"); firstNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("firstName"));
在这个例子中,
Person
是TableView
items
列表的类型。Person
必须宣布为公开。PropertyValueFactory
使用构造函数参数"firstName"
来假定Person
具有公共方法firstNameProperty
,没有形式参数,返回类型为ObservableValue<String>
。如果存在这样的方法,那么它将被调用,另外假设返回一个
Property<String>
的实例。 返回值用于填充TableCell
。 此外,TableView
增加观察者的返回值,使得烧制的任何变化将通过观察TableView
,导致细胞立即更新。如果不存在这样的方法,则
PropertyValueFactory
假设Person
具有公共方法getFirstName
或isFirstName
,没有形式参数,返回类型为String
。 如果存在这样的方法,那么它将被调用,它的返回值被包装在一个ReadOnlyObjectWrapper
中并返回到TableCell
。 在这种情况下,TableCell
将无法观察到财产的变化,与上述第一种方法不同。作为参考(并且如表格
cell value factory
文档中所述),上述代码的长形式将是以下内容: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
模块。 如果模块opens
将包含的包至少为javafx.base
模块,则可以反射访问类。 否则,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
-
-
构造方法摘要
构造方法 Constructor 描述 PropertyValueFactory(String property)
创建一个默认的PropertyValueFactory,使用给定的属性名称反射地从给定的TableView行项中提取值。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 ObservableValue<T>
call(TableColumn.CellDataFeatures<S,T> param)
当需要时调用call
方法,并且给出类型为P的单个参数,并要求返回类型为R的对象。String
getProperty()
返回构造函数中提供的属性名称。
-
-
-
构造方法详细信息
-
PropertyValueFactory
public PropertyValueFactory(String property)
创建一个默认的PropertyValueFactory,使用给定的属性名称反射地从给定的TableView行项中提取值。- 参数
-
property
- 试图在给定对象中反映提取相应值的属性名称。
-
-
方法详细信息
-
call
public ObservableValue<T> call(TableColumn.CellDataFeatures<S,T> param)
call
方法在需要时被调用,并且被赋予类型为P的单个参数,并且要求返回类型为R的对象。
-
getProperty
public final String getProperty()
返回构造函数中提供的属性名称。- 结果
- 构造函数中提供的属性名称
-
-