VaadinのGridに画像のカラムを追加する

Vaadin FlowのGridに画像を表示させる方法。

普通にテキスト表示するだけならい、例えばsetColumnsaddColumn でプロパティ名で指定するか、

grid.setColumns("id", "name", "detail")

少し手の混んだことをやるなら下記のようにして表示したい内容をつくることもできる。

grid.addColumn(p -> {
  return p.GetProductType().toString();
})

しかし、画像を表示させたい場合に上記のaddColumnを使ってImageオブジェクトを返すとオブジェクトをtoStringした謎の文字列が表示されるだけ。

この場合は、addComponentColumn を使えばよい。

grid.addComponentColumn(p -> {
            return new Image("files/"+p.getIconName(), "icon");
        });

コメント

タイトルとURLをコピーしました