gpt4 book ai didi

javafx - cellValueFactory()和cellFactory()如何工作?它们之间有什么区别?

转载 作者:行者123 更新时间:2023-12-04 03:49:41 25 4
gpt4 key购买 nike

我想了解这些方法cellValueFactory();cellFactory();
他们何时被调用?

它们的目的是什么?

它们如何工作?

最佳答案

这两个工厂都被TableView(或更确切地说是Skin)使用。

TableCell确定需要一个单元格来显示其数据时,将使用 cellFactory 创建TableView ui元素。单元格中显示的数据(= item)可能会更改(滚动,TableView项的修改)。 item中显示的TableCellTableView使用 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);
}

});

单击 Button时会发生以下情况:
  • 修改了属性,从而通知监听器TableView已添加到ObservableValue返回的cellValueFactory中。
  • TableView更新包含已修改项目的行中TableCell的项目;用新值调用updateItem方法。在这种情况下,将使用默认工厂,因此updateItem只需将item.toString()设置为新文本。
  • 关于javafx - cellValueFactory()和cellFactory()如何工作?它们之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38803759/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com