0

我想将图像添加到我的网络应用程序中,但我遇到了一些问题。

private void newImage(){
    Image image = new Image("src/main/resources/images/sponsor.png");
    absoluteLayout.addComponent(image);
}

我做了类似的事情,但它不起作用。我搜索了一些关于 的内容FileResource,但我仍然不知道该怎么做。

我的图像文件放在目录中src/main/resources/images

图片目录中的赞助商.png

我还阅读了文档站点,但它仍然无法正常工作:https ://vaadin.com/components/vaadin-image 。

4

1 回答 1

2

绝对布局组件和具有Image仅采用一个参数的构造函数的类的存在意味着您使用的是 Vaadin 8(或更早版本),而您链接到的文档适用于 Vaadin 10 和更高版本。

从屏幕截图中可以看出,您将图像路径传递给的构造函数参数命名为caption。因此,这是显示在图像旁边的文本,而不是对图像数据本身的引用。

您还需要将 a 分配Resource给图像,作为第二个构造函数参数或使用单独的setSource方法。使用您的文件src/main/resources,最简单的方法是使用ClassResource从类路径加载数据的 a。

总之,一个工作示例将是这样的:

Image image = new Image();
image.setSource(new ClassResource("/images/sponsor.png"));
于 2020-10-29T08:13:13.253 回答