Grid 在vaadin网格的单元格中显示多个组件

Grid 在vaadin网格的单元格中显示多个组件,grid,vaadin7,Grid,Vaadin7,是否有任何方法可以将多个组件(如复选框、标签等)显示到Vaadin网格的单个单元格?网格显示由GeneratedPropertyContainer动态填充的数据 提前感谢。如果您搜索,您将找到一些扩展,例如,这些扩展允许您以某种轻松的方式拥有这些功能。下面您可以看到基于前面提到的附加组件的VaadinV7.7.3和v1.0.2的代码示例。请记住更新并重新编译widgetset 公共类GridWithMultiComponentRenderer扩展了垂直布局{ 私有静态最终字符串按钮\u ID=“

是否有任何方法可以将多个组件(如复选框、标签等)显示到Vaadin网格的单个单元格?网格显示由GeneratedPropertyContainer动态填充的数据

提前感谢。

如果您搜索,您将找到一些扩展,例如,这些扩展允许您以某种轻松的方式拥有这些功能。下面您可以看到基于前面提到的附加组件的VaadinV7.7.3和v1.0.2的代码示例。请记住更新并重新编译widgetset

公共类GridWithMultiComponentRenderer扩展了垂直布局{
私有静态最终字符串按钮\u ID=“按钮”;
公共网格与多组件渲染器(){
//基本网格设置
网格网格=新网格(新BeanItemContainer(Person.class));
grid.setSizeFull();
添加组件(网格);
//添加装饰器
ComponentGridDecorator gridDecorator=新的ComponentGridDecorator(网格,Person.class);
//生成将显示组件的列
gridDecorator.addComponentColumn(按钮\u ID,person->new HorizontalLayout(
新建按钮(“获取名称”,事件->通知.show(person.getName()),
新建按钮(“获取姓氏”,事件->通知.show(person.Get姓氏()),
新建按钮(“获取年龄”,事件->通知.show(String.valueOf(person.getAge()))
));
//设置列顺序
grid.setColumns(“姓名”、“姓氏”、“年龄”、按钮和ID);
//添加一些虚拟数据
随机=新随机();
对于(int i=0;i<10;i++){
添加(新人物(“姓名”+i,“姓氏”+i,random.nextInt(99)+1));
}
}
//用于简单绑定的POJO
公共静态类人员{
私有字符串名称;
私家姓;
私人互联网;
公众人物(字符串名称、字符串姓氏、整数年龄){
this.name=名称;
this.姓氏=姓氏;
这个。年龄=年龄;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getNames(){
返回姓氏;
}
public void setSurname(字符串姓氏){
this.姓氏=姓氏;
}
公共整数getAge(){
回归年龄;
}
公共无效设置(整数){
这个。年龄=年龄;
}
}
}
结果:


谢谢你的帮助。我可以使用ComponentRenderer插件实现我的需求。很好用。@Debash没问题,很高兴我能帮上忙。通常在StackOverflow上,对某人的回答或评论表示感谢的常用方式是,如果有帮助,就向上投票,或者选择它作为正确的答案(单击投票号码前的绿色
v
符号),这将给回答者一些声誉分数。另一方面,如果回答没有关于问题的有意义的信息,你可以选择否决它。这些操作将帮助其他有类似问题的用户快速发现相关信息()。干杯