Vaadin图像在网格中没有显示

问题描述 投票:1回答:1

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

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

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

谢谢,托尔斯滕

PS:我正在使用第13版。

image vaadin treegrid vaadin-flow
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.