我正在实现像这样的表格查看器
folderAssociationTable = componentsRenderer.createTableWidget(container, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION, 2, true);
folderAssociationTable.addListener(SWT.MeasureItem, new Listener() {
public void handleEvent(Event event) {
event.height = 20;
}
});
tableViewer = new TableViewer(folderAssociationTable);
tableViewer.getTable().setHeaderVisible(true);
tableViewer.getTable().setLinesVisible(true);
tableViewer.setContentProvider(new ArrayContentProvider());
TableColumn column = new TableColumn(tableViewer.getTable(), SWT.NONE);
column.setText("CheckBox");
column.setWidth(100);
checkBoxColumn = new TableViewerColumn(tableViewer, column);
column = new TableColumn(tableViewer.getTable(), SWT.NONE);
column.setText("Source Folder");
column.setWidth(200);
sourceFolderColumn = new TableViewerColumn(tableViewer, column);
column = new TableColumn(tableViewer.getTable(), SWT.NONE);
column.setText("Target Folder");
column.setWidth(200);
targetFolderColumn = new TableViewerColumn(tableViewer, column);
现在我想在这个表中添加conent,第一列我要添加复选框,另外两列想要在for循环中动态添加字符串值,如何将这些内容添加到Table Viewer。
答案 0 :(得分:0)
首先,如果您只想显示您设置的复选框,字符串和图像,则不需要TableViewer
。请改用Table
!如果您需要更复杂的东西,例如显示任意Java对象,则查看器非常有用。
CheckboxTableViewer
和ICheckStateProvider
。您需要使用SWT.CHECK
样式创建表格。要添加值,您需要为查看器设置一些输入。如果是ArrayContentProvider
,这只是一个数组或集合:
// ModelObject is whatever type of objects you want to show. Maybe just String...
List<ModelObject> inputList = new ArrayList<ModelObject>();
// build the list
while (...) {
ModelObject newObject = ...
inputList.add(newObject);
}
tableViewer.setInput(inputList);
如果您稍后需要更改列表,请致电tableViewer.refresh()
。
其他方面,请参阅Vogella tutorial。