gpt4 book ai didi

java - 如何将图像放入ListView javafx中

转载 作者:行者123 更新时间:2023-11-30 07:39:38 26 4
gpt4 key购买 nike

在我的 ListView myList 中,我希望每个项目(字符串)旁边都有一张迷你照片。

这是我的 ListView myList 的定义方式:

ListView<String> myList = new ListView<String>();

SearchResultList.setCellFactory(new Callback<ListView<String>,ListCell<String>>() {
@Override
public ListCell<String> call(ListView<String> list) {
return new ColorRectCell();
}
}
);

我读到您必须指定一个单元工厂来更新列表中的每个项目。但是我不知道这一切是如何工作的,这是我指定我的细胞工厂

的代码
static class ColorRectCell extends ListCell<String> {
@Override
public void updateItem(String item, boolean empty) {

super.updateItem(item, empty);
Image rect = new Image("huisteken.jpg");
ImageView rec = new ImageView(rect);
if (item != null) {
System.out.println("testing" + item +"######");

setGraphic(rec);
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
}

}
}

欢迎任何想法或提示。

最佳答案

实现此目的的解决方案是将 Cells 文本设置为 null 并使 Graphic 包含一个包含图片和文本的 Hbox。所以让你的 updateItem 看起来像这样:

@Override
void updateItem(final String item, final boolean empty) {
super.updateItem(item, empty);

// if null, display nothing
if (empty || item == null) {
setText(null);
setGraphic(null);
return;
}

setText(null);

Label textLabel = new Label(item + " ");

final HBox hbox = new HBox();
hbox.setSpacing(5);

Label iconLabel = new Label();
iconLabel.setGraphic(new ImageView(new Image("huisteken.jpg")));

hbox.getChildren().addAll(iconLabel, textLabel);
setGraphic(hbox);
}

`

关于java - 如何将图像放入ListView javafx中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34862934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com