所以,当我在网格组件中引入这段代码时,错误出现了:
new ComponentRenderer<>(Button::new, (button, plotno) -> {
button.setIcon(new Icon(VaadinIcon.TRASH));
button.addClickListener(e -> {
this.usunPlotno(plotno);
});
知道发生了什么事吗?由于
在更大的范围内:
addColumn(Material::getId).setHeader("Lp: ");
addColumn(Material::getWysokoscCm).setHeader("Wysokość: ");
addColumn(Material::getCenaZl).setHeader("Cena: ");
addColumn(
new ComponentRenderer<>(Button::new, (button, plotno) -> {
// button.setText("usun");
button.setIcon(new Icon(VaadinIcon.TRASH));
button.addClickListener(e -> {
this.usunPlotno(plotno);
Notification.show("material clicked");
});
})
).setHeader("Usuń:");
这是在类的构造函数中扩展Grid组件的样子。当我删除提到的ComponentRenderer
时,它不会给我一个错误,但当然代码不工作…
我会推荐以下内容(注意我不知道plotno
究竟来自哪里,所以我只是猜测您在Material
bean中有getPlotno
。这里的重点是我认为你使用组件渲染器的方式是错误的。
new ComponentRenderer<>(material -> {
Button button = new Button("usun")
button.setIcon(new Icon(VaadinIcon.TRASH));
button.addClickListener(e -> {
this.usunPlotno(material.getPlotno());
return button;
});