zhajiny的gravatar头像
zhajiny 2018-01-16 16:35:23

javafx自定义ListView的CellFactory后显示数据时出现数据重复问题

编译环境:
jdk 1.8.0_131
ide IDEA Community 2017.3
功能描述:
本人尝试编写一个这样的用户界面,BorderPane左侧为ListView,中心为一个Label和TextField外加一个名为Submit的Button。当在TextField中输入字符串,并点击Submit后,被输入的字符串及创建的时间,还有一个状态Pass将被显示在左侧的ListView中。
为了实现此显示功能,我重新设置了ListView的CellFactory。在CellFactory中返回一个内部类TitleCell继承了ListCell类,重写其updateItem方法。如下:

private class TitleCell extends ListCell<SimpleDocument> {

    @Override
    public void updateItem(SimpleDocument item, boolean empty){
        super.updateItem(item, empty);

        if(!empty && item != null){
            BorderPane cell = new BorderPane();

            Text title = new Text(item.getTitle());
            title.setFont(Font.font(14));

            Text date = new Text(item.getDate().toString());
            date.setFont(Font.font(10));

            Text source = new Text(item.getStatus());
            source.setFont(Font.font(10));

            cell.setTop(title);
            cell.setLeft(date);
            cell.setRight(source);

            setGraphic(cell);
        }
    }

问题出现:
编译通过,执行程序。向TextField输入字符串"abc"点击Submit结果正常。如图:
javafx自定义ListView的CellFactory后显示数据时出现数据重复问题

再次向TextField输入字符串"def",点击Submit,问题出现。
javafx自定义ListView的CellFactory后显示数据时出现数据重复问题

如上图,出现显示了两次def的问题。
为什么会如此,怎样解决?还请各位大神不吝赐教。
附源代码链接:代码

所有回答列表(0)
相关问答
最近浏览
AloneZZr  LV2 2019年12月21日
xp9522  LV9 2019年8月31日
Markrov  LV1 2018年8月23日
shancheng  LV1 2018年2月1日
周敬航  LV2 2018年1月23日
yzh123456  LV8 2018年1月23日
忆往昔丶时间淡化过去  LV12 2018年1月23日
苗毅6666  LV32 2018年1月20日
宛若重生  LV19 2018年1月19日
aliger  LV11 2018年1月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友