8 javafx
我想了解这些方法cellValueFactory();和cellFactory();
什么时候调用?
他们的目的是什么?
它们如何工作?
fab*_*ian 10
两个工厂都被TableView(或更确切地说是Skin)使用.
该TableCellUI元素使用所创建的cellFactory,当TableView确定它需要一个电池,以显示它的数据.item单元格中显示的数据(= )可能会发生变化(滚动,修改TableView项目).在item所显示的TableCell是由确定的TableView使用cellValueFactory.该TableView显示在一个给定的电池它的项目这就需要会决定将cellValueFactory得到一个ObservableValue包含了实例.
该cellFactory可用于定制细胞的表的外观,但通常这是没有必要的,因为默认cellFactory简单地使用toString它的项目的方法来得到String显示.
cellValueFactory用于"选择" TableView应该在给定列中显示的项目的某个部分.
在此示例中,您还可以看到修改TableView项属性的情况.
commit.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
Person p = tableView.getSelectionModel().getSelectedItem();
p.setName(name.getText());
Double value = sizeFormatter.getValue();
p.setSize(value == null ? -1d : value);
}
});
Run Code Online (Sandbox Code Playgroud)
Button单击时会发生以下情况:
TableView已添加到ObservableValues返回的cellValueFactorys 的侦听器.TableView更新的项目TableCell包含已修改的项目S中的行; updateItem使用新值调用该方法.在这种情况下,使用默认工厂,因此updateItem只需设置item.toString()为新文本.| 归档时间: |
|
| 查看次数: |
4440 次 |
| 最近记录: |