如何更改持有AccountInfo类型的Object的ListView上的文本?

时间:2016-12-09 23:31:22

标签: java listview netbeans javafx

我正在使用JavaFX制作密码管理器,并且我在列表视图中保存用户帐户中的所有相关信息,他们可以选择列表中的项目以将其显示在右侧的表单上。此时列表视图只显示与正在保持的对象相关的文本。我想显示帐户信息所针对的网站名称。我在AccountInfo类上有一个getSiteName()方法,但我不知道如何在列表视图中设置文本。在这里寻找一些指导!感谢。

1 个答案:

答案 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;
    }
});