我正在使用JavaFX制作密码管理器,并且我在列表视图中保存用户帐户中的所有相关信息,他们可以选择列表中的项目以将其显示在右侧的表单上。此时列表视图只显示与正在保持的对象相关的文本。我想显示帐户信息所针对的网站名称。我在AccountInfo类上有一个getSiteName()方法,但我不知道如何在列表视图中设置文本。在这里寻找一些指导!感谢。
答案 0 :(得分:1)
你应该设置一个csutom CellFactory并覆盖它通过覆盖updateItem
方法呈现项目文本的方式:
lv.setCellFactory(new Callback<ListView<AccountInfo>, ListCell<AccountInfo>>() {
@Override
public ListCell<AccountInfo> call(ListView<AccountInfo> param) {
ListCell<AccountInfo> cell = new ListCell<AccountInfo>() {
@Override
protected void updateItem(AccountInfo item, boolean empty) {
super.updateItem(item, empty);
if(item != null) {
setText(item.getSiteName());
} else {
setText(null);
}
}
};
return cell;
}
});