GWT如何制作由两种单元格组成的复合单元格,或如何制作带有图像和文本的自定义单元格

GWT如何制作由两种单元格组成的复合单元格,或如何制作带有图像和文本的自定义单元格,gwt,datagrid,gwt-2.2-celltable,custom-cell,gwt-celltable,Gwt,Datagrid,Gwt 2.2 Celltable,Custom Cell,Gwt Celltable,我想在celltable/datagrid中添加一列,其中包含图像+文本。 我只是做了一些研究,发现也许有三种方法可以做到这一点 制作一个ImageResourceCell和一个TextCell,然后将它们组合成一个复合单元格。(还没有看到任何示例或参考资料,只是从我的脑海中浮现出来。可能这不起作用) 使用IconCellDecorator。我检查了文件。它说“一个为另一个单元格添加图标的单元格装饰器”。不确定它是否能满足我的要求。我仍然找不到任何关于它的例子 制作一个自定义单元格。有一个关于在

我想在celltable/datagrid中添加一列,其中包含图像+文本。 我只是做了一些研究,发现也许有三种方法可以做到这一点

  • 制作一个ImageResourceCell和一个TextCell,然后将它们组合成一个复合单元格。(还没有看到任何示例或参考资料,只是从我的脑海中浮现出来。可能这不起作用)

  • 使用IconCellDecorator。我检查了文件。它说“一个为另一个单元格添加图标的单元格装饰器”。不确定它是否能满足我的要求。我仍然找不到任何关于它的例子

  • 制作一个自定义单元格。有一个关于在GWT官方网站中结合颜色名称和颜色样式的示例。我用这种方式将图像和字符串结合起来。但它不起作用。也许我的代码有问题,因为我不完全理解代码

  • 有谁能给我举一些实现这一目标的例子吗。你可以用你知道的任何方法。只需键入一些代码并向我展示示例

    非常感谢你


    致以最诚挚的问候

    这不完全是您搜索的内容,但我认为您可以修改我的示例。在这里,我使用CompositeCell获得一个包含两个不同图像的单元,每个图像都在ImageCell中渲染

    //first make a list to store the cells, you want to combine
    final ArrayList<HasCell> zellen = new ArrayList<HasCell>();
    
    //then define the cells and add them to the list    
    HasCell bearbeiten = new HasCell(){
        @Override
        public Cell getCell() {
            return new ImageCell();
        }
    
        @Override
        public FieldUpdater getFieldUpdater() {
            return null;
        }
    
        @Override
        public Object getValue(Object object) {
            String bearbBild = "images/pencil3.png";
            return bearbBild;
        }
    };
    zellen.add(bearbeiten);
    
    
    HasCell ansicht = new HasCell(){
    
        @Override
        public Cell getCell() {
            return new ImageCell();
        }
    
        @Override
        public FieldUpdater getFieldUpdater() {
            return null;
        }
    
        @Override
        public Object getValue(Object object) {
            String ansichtBild = "images/gnome_edit_find.png";
            return ansichtBild;
        }
    };
    zellen.add(ansicht);
    
    //use your CompositeCell in another Widget or Table         
    Column<Benutzergruppe, Cell> options = new Column<Benutzergruppe, Cell>(new CompositeCell(zellen)){
    
        @Override
        public Cell getValue(Benutzergruppe object) {
            return zellen.get(0).getCell();
        }   
    };
    
    //首先创建一个列表来存储要合并的单元格
    final ArrayList zellen=新的ArrayList();
    //然后定义单元格并将其添加到列表中
    HasCell bearbeiten=新的HasCell(){
    @凌驾
    公共单元getCell(){
    返回新的ImageCell();
    }
    @凌驾
    公共字段更新程序getFieldUpdater(){
    返回null;
    }
    @凌驾
    公共对象getValue(对象对象){
    字符串bearbBild=“images/pencil3.png”;
    返回熊皮;
    }
    };
    zellen.add(bearbeiten);
    HasCell ansicht=新的HasCell(){
    @凌驾
    公共单元getCell(){
    返回新的ImageCell();
    }
    @凌驾
    公共字段更新程序getFieldUpdater(){
    返回null;
    }
    @凌驾
    公共对象getValue(对象对象){
    字符串ansichtBild=“images/gnome\u edit\u find.png”;
    返回ansichtBild;
    }
    };
    zellen.add(ansicht);
    //在其他小部件或表格中使用CompositeCell
    列选项=新列(新CompositeCell(zellen)){
    @凌驾
    公共单元格getValue(Benutzergruppe对象){
    返回zellen.get(0.getCell();
    }   
    };
    
    我将该列添加到DataGrid中,效果很好

    你好,Nicole

    看一下示例,尤其是CellList、CellTree/CellBrowser和CellSampler。