2012-10-29 42 views
0

我想填充一個CellTable,並在一列中我想顯示一個圖像。這個圖像應該顯示除了一個以外的每一行。有誰知道如何添加這樣的東西?java gwt image invisible

回答

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); 
+0

謝謝你工作得很好,但我想設置一個服裝細胞(ImageAnchorCell)作爲列類型,所以我所做的:c欄=新列<行類型,ImageAnchorCell >(新ImageAnchorCell )..但是這不起作用... – wasp256

+0

我更新了答案,希望這是你要找的。 – user1332981

0

使用ImageCell或ImageResourceCell。在getValue()中,您要麼返回null(不會顯示圖片),要麼返回URL/ImageResource。