Listview setCellFactory带有通用标签

时间:2016-12-25 08:33:26

标签: java javafx

我尝试在ListView内创建自定义项目,让我们说出它的标签,我想执行setCellFactory,而我正在使用{{1}我没有看到该项目(标签的文字),为什么?

Label

1 个答案:

答案 0 :(得分:3)

如果您确实要展示展开Node的商品,则无需使用自定义ListCell。默认工厂的ListCell已经这样做了。

但是,在您的情况下,您正在调用setItem而不是setGraphic,并且当单元格变空时,您也不会将属性设置回null

list.setCellFactory(new Callback<ListView<Label>, ListCell<Label>>() {

    @Override
    public ListCell<Label> call(ListView<Label> list) {
        ListCell<Label> cell = new ListCell<Label>() {
            @Override
            public void updateItem(Label item, boolean empty) {
                super.updateItem(item, empty);
                // also sets to graphic to null when the cell becomes empty
                setGraphic(item);
            }
        };

        return cell;
    }
});