网格中的Vaadin图像未显示

时间:2019-03-28 13:27:23

标签: image vaadin treegrid vaadin-flow

我正在尝试在TreeGrid列中显示一个很小的小图像(16x16像素)。

 treeGrid.addComponentColumn(i -> new Image("file://c:/temp/reddot.png", "alt")).setHeader("Preview");

在我的IDE中,该文件URL带有下划线,我可以单击它,然后在浏览器中打开图像。因此,该文件似乎还可以存在。 但是不知何故,它不会出现在网格列中,并且“ alt”文本也不会出现。 嗯任何人都知道出什么事了吗?不幸的是我没有看到任何错误消息...

谢谢, 托尔斯滕

PS:我正在使用版本13。

1 个答案:

答案 0 :(得分:0)

您可以尝试将图片放在META-INF/resources下。然后,您可以按如下名称直接引用图像:Image im=new Image("kissa.jpg","Random picture");

否则,您可以创建一个内部,然后引用提及文件夹。在下面的图片中,我有这个设置 Image location

这是输出: enter image description here

整个代码:

    TreeGrid<Person> grid = new TreeGrid<>(Person.class);
    grid.setHierarchyColumn("name");
    grid.addComponentColumn(e->{
    if(e.getName().equals("daughter")) {
            Image im=new  Image("test/cat.jpg","Random picture");
            im.setWidth("200px");
            im.setHeight("150px");
            return im;}
    else { 
           Image im=new Image("kissa.jpg","Random picture"); 
           im.setWidth("200px");
           im.setHeight("150px");
           return im;}}).setHeader("Cat");
    Person dad = new Person("dad", null);
    Person son = new Person("son", dad);
    Person daughter = new Person("daughter", dad);
    List<Person> all = Arrays.asList(dad, son, daughter);

    all.forEach(p -> grid.getTreeData().addItem(p.getParent(), p));

    add(grid);

TreeGrid的示例从此处复制:Using new features with the LTS version: case TreeGrid