gpt4 book ai didi

java - setCellValueFactory 的正确用法

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

我正在尝试执行以下操作:

tableColumns[0].setCellValueFactory(
new PropertyValueFactory<DiaryEntry,String>("username")
);
tableColumns[1].setCellValueFactory(
new PropertyValueFactory<DiaryEntry,Project>("project")
);

所以第一个工作得很好。它使用我的“DiaryEntry”类中的 getUsername() 方法来显示字符串。第二个是使用方法 getProject() 并尝试将项目添加到我的表中。当这样做时,我最终得到类似“2xProject2353asxk”的东西。这是完全有道理的,因为它不能简单地在表中显示 Project 对象。

在我的类(class)项目中,我有一个 setter/getter “getName()”。所以我的问题是:有什么方法可以更改我的第二个语句,以便表中输入项目名称?我读了一些关于 setCellValueFactory() 方法的帖子,但我仍然无法找到解决方案。

最佳答案

除了 cellValueFactory 之外,还使用 ​​cellFactory

tableColumns[1].setCellValueFactory(
new PropertyValueFactory<DiaryEntry,Project>("project")
);
tableColumns[1].setCellFactory(col -> new TableCell<DiaryEntry, Project>() {
@Override
protected void updateItem(Project project, boolean empty) {
super.updateItem(project, empty);
if (empty) {
setText(null);
} else {
setText(project.getName());
}
}
});

cellValueFactory 告诉列在其单元格中显示什么值cellFactory 告诉它如何显示值。

关于java - setCellValueFactory 的正确用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44954227/

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