Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改列名-Vaadin 7.8.4_Java_Grid_Containers_Vaadin_Propertygrid - Fatal编程技术网

Java 更改列名-Vaadin 7.8.4

Java 更改列名-Vaadin 7.8.4,java,grid,containers,vaadin,propertygrid,Java,Grid,Containers,Vaadin,Propertygrid,我在网格中使用IndexedContainer Grid grid = new Grid(); IndexedContainer container = new IndexedContainer(); grid.setContainerDataSource(container); container.addContainerProperty("Something", String.class, ""); 我需要更改容器属性的名称。例如,点击按钮后,属性“某物”变为“新属性”。有什么想法吗?多谢

我在网格中使用IndexedContainer

Grid grid = new Grid();
IndexedContainer container = new IndexedContainer();
grid.setContainerDataSource(container);
container.addContainerProperty("Something", String.class, "");

我需要更改容器属性的名称。例如,点击按钮后,属性“某物”变为“新属性”。有什么想法吗?多谢各位

注1:您从哪里获得vaadin 7.8.4?我能看到的最新的7.x版本是7.7.10。对于本练习,我将假设它是一个输入错误,并使用7.7.4


注意2:不确定是只更改列标题,还是更改整个属性id。。。如果只是标题,您可以使用:

grid.getColumn(“某物”).setHeaderCaption(“其他某物”);

抱歉,不可能改变一个属性。但是,您可以通过删除它并添加新的来解决此问题:

公共类MyGridWithChangeableColumnHeader扩展了垂直布局{
公共MyGridWithChangeableColumnHeader(){
//基本网格设置
网格=新网格();
IndexedContainer容器=新的IndexedContainer();
grid.setContainerDataSource(容器);
container.addContainerProperty(“P1”,String.class,”);
container.addContainerProperty(“Something”,String.class,”);
container.addContainerProperty(“P3”,String.class,”);
//切换属性的按钮
按钮按钮=新按钮(“切换属性”,事件->{
字符串oldProperty、newProperty;
如果(container.getContainerPropertyIds()包含(“某物”)){
oldProperty=“某物”;
newProperty=“其他”;
}否则{
oldProperty=“其他东西”;
newProperty=“某物”;
}
container.removeContainerProperty(旧属性);
container.addContainerProperty(newProperty,String.class,“”);
grid.setColumnOrder(“P1”,newProperty,“P3”);
});
添加组件(网格、按钮);
}
}
结果:


请记住,如果删除某个属性,将丢失存储在该属性上的所有数据,并且必须重新填充该属性。