首页 > 解决方案 > JavaFX ListView SetCellFactory 在 imageView 和 Text 之间添加边距

问题描述

我将使用 ListView 作为导航菜单。所以我发现了如何使用 ListView.setCellFactory 在 ListCell 标题旁边添加一个 ImageView。但现在我想在 ImageView 和标题之间有更多的空间。我怎样才能做到这一点?这是我的代码:

        lvNavigation.setCellFactory(listView -> new ListCell<String>(){
        private ImageView imageView = new ImageView();

        @Override
        public void updateItem(String name, boolean empty) {
            super.updateItem(name, empty);

            if (empty) {
                setText(null);
                setGraphic(null);
            } else {
                Image image = getImageFromStatus(name);
                imageView.setImage(image);
                setText(name);
                setGraphic(imageView);
            }
        }
    });

getImageFromStatus(name) 返回一个 Image 对象。这实际上是这样的:

在此处输入图像描述

标签: javalistviewjavafx

解决方案


使用graphicTextGapProperty

setGraphicTextGap(10.0); // Or any other appropriate value

推荐阅读