我有4列的celltable(名称大小为addBy ModifyBy)

在运行期间将填充所有值。

该表准确地显示了文档。

文件可以是pdf,txt,doc等


我想在文档名称前添加图标。
我还想在名称列之前再添加一个图像列


到目前为止,我的代码。

*
private CellTable<FDocument> getDocumentTable() {
        if (documentTable == null) {
            documentTable = new CellTable<FDocument>();
            documentTable.setSize("600px", "300px");
            documentTable.addColumn(nameColumnD, "NAME");
            documentTable.addColumn(sizeColumnD, "SIZE");
            documentTable.addColumn(modified_by_ColumnD, "MODIFIED BY");
            documentTable.addColumn(dateColumnD, "MODIFIED ON");


        }
        return documentTable;
    }


TextColumn<FDocument> idColumnD = new TextColumn<FDocument>() {
            @Override
            public String getValue(FDocumentobject) {
                // TODO Auto-generated method stub
                return object.getId();
            }
        };
        TextColumn<FDocument> nameColumnD = new TextColumn<FDocument>() {
            @Override
            public String getValue(FDocumentobject) {
                return object.getName();
            }
        };
        TextColumn<FDocument> sizeColumnD = new TextColumn<FDocument>() {
            @Override
            public String getValue(FDocumentobject) {
                return object.getSize();
            }
        };
        TextColumn<FDocument> modified_by_ColumnD = new TextColumn<FDocument>() {
            @Override
            public String getValue(FilenetDocument object) {
                return object.getModifiedBy();
            }
        };
        TextColumn<FDocument> dateColumnD = new TextColumn<FDocument>(){
            @Override
            public String getValue(FDocumentobject){
                return object.getModifiedOn();
            }
        };

 private void addValuesToTable(){
        List<FDocument> FDC = null;


        /*
         * Adding data to folder Table
         */
        ArrayList<FDocument> documentsArrayList = new ArrayList<FDocument>();
        Iterator<String> iteratorDocument = documents.getDocuments().getDocumentCollection().keySet().iterator();
        while(iteratorDocument.hasNext()){
            String key = iteratorDocument.next().toString();
            FDocument value = documents.getDocuments().getDocumentCollection().get(key);
            documentsArrayList.add(new FDocument(value.getName(), value.getSize(),value.getModifiedBy(), value.getModifiedOn(),value.getId()));

        }
        FDC = documentsArrayList;

    // Create a data provider.

        ListDataProvider<FDocument> dataProvider1 = new ListDataProvider<FDocument>();

    // Connect the table to the data provider.

        dataProvider1.addDataDisplay(documentTable);

    // Add the data to the data provider, which automatically pushes it to the widget.

        List<FDocument> listDocument = dataProvider1.getList();
            for (FDocument fDocument: FDC) {

                listDocument.add(fDocument1);
            }


这样,我就可以制作表格和值了。

请任何人告诉我程序


在文档名称之前添加图标。
我还想在名称列之前再添加一个图像列

最佳答案

使用DefaultTableCellRenderer可以针对具有所需图标的列设置自定义渲染器。如下所示,渲染器创建一个新标签来屏蔽所选列中的所有单元格。

private class CellRenderer extends DefaultTableCellRenderer
{

 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
 {
    JLabel label = new JLabel((String)value);
    label.setOpaque(true);
    Icon icon = new ImageIcon("icon.png");
    label.setIcon(icon);
    return label;
 }
}


然后将其应用于您的表,如下所示:

table.getColumnModel().getColumn(0).setCellRenderer(new CellRenderer());


编辑:
如果您使用的是GWT,请参阅here以获取网格单元格式的示例代码。

10-04 20:08