你真的需要在表中每行一個對象。
如果你創建一個包含每行一個對象數組或ArrayList中,你可以使用標準的ArrayContentProvider
:
viewer.setContentProvider(ArrayContentProvider.getInstance());
行數據類可能是這樣的:
class RowData
{
private String [] cols;
RowData(String [] theCols)
{
cols = theCols;
}
String getColumn(int index)
{
return cols[index];
}
}
創建陣列這些來自您現有的列表:
RowData [] rows = new RowData [listSize];
for (int i = 0; i < listSize; i++)
{
rows[i] = new RowData(new String [] {col0List.get(i), col1list.get(i), ...});
}
設置此a S中輸入給觀衆:
viewer.setInput(rows);
但僅設置在觀衆的內容提供者和標籤提供者之後做到這一點。
使用標籤供應商實施ITableLabelProvider
:
class MyLabelProvider extends LabelProvider implements ITableLabelProvider
{
@Override
public String getColumnText(Object element, int columnIndex)
{
RowData rowData = (RowData)element;
return rowData.getColumn(columnIndex);
}
@Override
public Image getColumnImage(Object element, int columnIndex)
{
return null;
}
}
我用這個,但我不能把名單作爲輸入,以填補表的列。 – 2014-09-05 12:36:32
您需要創建一個包含一行所有數據的新類,並將其用於內容提供者和標籤提供者。 – 2014-09-05 12:38:16