gpt4 book ai didi

java - 如何在 CellFactory 的 updateItem() 中获取行值

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:29 25 4
gpt4 key购买 nike

ageColumn.setCellFactory(param -> new TableCell<Person, String>(){
@Override
protected void updateItem(String item, boolean empty) {
param.getCellFactory().
super.updateItem(item, empty);
setText(empty ? null : String.valueOf(item));

if(person.getName.equals("MATEUS")) {
setStyle("-fx-background-color: red;");
}
}
});

如何从表中获取行值“人”?我只能从单元格中获取值,而不能获取整个对象。

最佳答案

你可以做到

Person person = getTableView().getItems().get(getIndex());

你也可以这样做

Person person = (Person) getTableRow().getItem();

但这不太可取(在我看来),因为 getTableRow() 返回原始类型,因此它需要未经检查的向下转换。

显然,只有当 emptyfalse 时,这两种方法才有效,所以它们应该在检查中:

ageColumn.setCellFactory(param -> new TableCell<Person, String>(){
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setText(null);
setStyle("");
} else {
setText(item);
Person person = getTableView().getItems().get(getIndex());
if(person.getName.equals("MATEUS")) {
setStyle("-fx-background-color: red;");
} else {
setStyle("");
}
}
}
});

关于java - 如何在 CellFactory 的 updateItem() 中获取行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33392811/

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