Vaadin:带有IndexedContainer的网格图像

时间:2016-06-09 14:19:10

标签: vaadin vaadin7

所以我正在尝试使用带有以下代码的IndexedContainer将图像添加到我的网格中:

    //picture
    String imgURL = (String)ds.child(PHOTO).getValue();//gets the image URL from the DB
    System.out.println(imgURL);
    ExternalResource picture = new ExternalResource(imgURL);
    System.out.println(picture.getURL());
    Image image = new Image(PICTURE, picture);
    image.setHeight("5px");
    item.getItemProperty(PICTURE).setValue(image);

我没有获得图片,而是获得了Image对象的toString()。两个println都会打印正确的网址。另请注意,这适用于Table,但不适用于Grid。知道为什么吗?

1 个答案:

答案 0 :(得分:1)

如果要在Vaadin Grid列中显示图像,则需要设置ImageRenderer,请参阅here段ImageRenderer。

示例:将列定义为

grid.addColumn("picture", Resource.class).setRenderer(new ImageRenderer());

然后将资源添加为列值

grid.addRow(new ThemeResource("img/copernicus-128px.jpg"), "Nicolaus Copernicus", 1543);

在您的情况下,它是ExternalResource。不需要Image组件。