2012-07-04 96 views
1

我使用gwt创建了一个小型CellTable。在那张表中,我想添加一些图片。 对此,我使用下面的代码:Gwt在ImageCell中更改图像大小

Column<Company, String> columnflag = new Column<Company, String>(new ImageCell()) { 
    public String getValue(Company company) { 
     return company.getImageSmall(); 
    } 
    }; 

这工作正常。但我想改变图像的大小?有谁知道我该怎么做?我没有发现任何东西...设置固定列的宽度和高度并没有帮助。

格尔茨

回答

4

你可以试试下面的代码:

ImageCell imageCell = new ImageCell() { 
    @Override 
    public void render(com.google.gwt.cell.client.Cell.Context context, String value, SafeHtmlBuilder sb) { 
     super.render(context, value, sb); 
     String imagePath = "images/yourImage.png"; 
     sb.appendHtmlConstant("<img src = '"+imagePath+"' height = '20px' width = '20px' />"); 

    } 
}; 
Column<Company, String> columnflag = new Column<Company, String>(imageCell) { 
    @Override 
    public String getValue(Form object) { 
      return ""; 
    } 
}; 
+1

好了,工作得非常好,但我怎么能传递'imagePath'到'render'方法? – hofmeister

+0

呃,实际上这个解决方案有点棘手。将会添加两个''一个是空的,另一个包含图像。无用切换其他图像。也不可能为'imagePath'传递一个动态值,或者? 还有其他解决方案吗? – hofmeister

+2

@Taz,你想显示基于不同公司的图像吗?如果你想这样做,那么在render()方法中,你可以在context.getKey()的帮助下获得Company对象。 Context.getKey()将为您提供公司对象,您可以从中获取图像。 – JankiPanwala