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