繁体   English   中英

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

[英]How can I change the text on a ListView that is holding an Object of type AccountInfo?

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

您应该设置一个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;
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM