我正在尝试填充一个CellTable,我希望在一列中显示一个Image。除了一行外,每行应显示此图像。有谁知道如何添加这样的东西?
答案 0 :(得分: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,请查看文档here。
更新:如果您想使用自定义单元格,则应决定是否在单元格的渲染方法中绘制图像:
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);
答案 1 :(得分:0)
使用ImageCell或ImageResourceCell。在getValue()中,您要么返回null(不显示图像),要么返回URL / ImageResource。