0

我正在尝试填充一个 CellTable,并且我想在一列中显示一个图像。应该为除一个之外的每一行显示此图像。有谁知道如何添加这样的东西?

4

2 回答 2

4

这就是我所做的:

Column column = new Column<RowObject, ImageResource>(new ImageResourceCell()) {

    @Override
    public ImageResource getValue(RowObject object) {
        if (showImageFor(object)) {
            return getImageResource();
        } else {
            return null;
        }
    }
};

cellTable.addColumn(column);

如果您不知道如何获取 ImageResource,请查看此处的文档。

更新:如果你想使用自定义单元格,你应该决定是否在单元格的渲染方法中绘制图像:

public class CustomCell extends AbstractCell<ColumnObject> {
    @Override
    public void render(Context context, ColumnObject value, SafeHtmlBuilder sb) {
        if (showImageFor(value)) {
            // Render the image
        }
    }
}

然后您可以像这样将该列添加到您的单元格中:

Column column = new Column<RowObject, ColumnObject>(new CustomCell()) {
    @Override
    public ColumnObject getValue(RowObject object) {
        return getColumnObjectFrom(object);
    }
};

cellTable.add(column);
于 2012-10-30T07:32:30.447 回答
0

使用 ImageCell 或 ImageResourceCell。在 getValue() 中,您要么返回 null(不会显示图像),要么返回 URL/ImageResource。

于 2012-10-29T15:45:18.517 回答