Eclipse 如何在jface tableviewer列中使用组合

Eclipse 如何在jface tableviewer列中使用组合,eclipse,swt,jface,Eclipse,Swt,Jface,我正在读取excel数据,并将标题(仅第一行)作为我的列添加到列表中,此列表作为输入添加到我的tableviewer以显示我的表中的数据。我正在创建tablecolumns并添加标签提供程序。我能看到表中的数据。现在,我想在每列中将所有文本框显示为组合。如何为每列添加组合?我的代码是 我的tableviewer类 公共类表视图示例{ 公共表视图示例(Shell){ TableViewer=新的TableViewer(shell,SWT.BORDER | SWT.FULL_选择); TableVi

我正在读取excel数据,并将标题(仅第一行)作为我的列添加到列表中,此列表作为输入添加到我的tableviewer以显示我的表中的数据。我正在创建tablecolumns并添加标签提供程序。我能看到表中的数据。现在,我想在每列中将所有文本框显示为组合。如何为每列添加组合?我的代码是 我的tableviewer类

公共类表视图示例{
公共表视图示例(Shell){
TableViewer=新的TableViewer(shell,SWT.BORDER | SWT.FULL_选择);
TableViewerColumn upDownColumn=新的TableViewerColumn(查看器,SWT.NONE);
upDownColumn.getColumn().setText(“显示顺序”);
upDownColumn.getColumn().setWidth(200);
setLabelProvider(新的ColumnLabelProvider(){
@凌驾
公共字符串getText(对象元素){
return((DataSourceModel)元素).getDisplayOrder();
}
});
TableViewerColumn checkboxColumn=新的TableViewerColumn(查看器,SWT.NONE);
checkboxColumn.getColumn().setText(“复选框选择”);
checkboxColumn.getColumn().setWidth(200);
checkboxColumn.setLabelProvider(新ColumnLabelProvider(){
@凌驾
公共字符串getText(对象元素){
return((DataSourceModel)元素).getCheckboxSelection();
}
});
TableViewerColumn uniqueFieldsColumn=新的TableViewerColumn(查看器,SWT.NONE);
uniqueFieldsColumn.getColumn().setText(“唯一字段”);
uniqueFieldsColumn.getColumn().setWidth(200);
uniqueFieldsColumn.setLabelProvider(新的ColumnLabelProvider(){
@凌驾
公共字符串getText(对象元素){
return((DataSourceModel)元素).getUniqueFields();
}
});
TableViewerColumn inputFieldNameColumn=新的TableViewerColumn(查看器,SWT.NONE);
inputFieldNameColumn.getColumn().setText(“输入字段名”);
inputFieldNameColumn.getColumn().setWidth(200);
inputFieldNameColumn.setLabelProvider(新ColumnLabelProvider(){
@凌驾
公共字符串getText(对象元素){
return((DataSourceModel)元素).getInputFieldName();
}
});
TableViewerColumn dataTypeColumn=新的TableViewerColumn(查看器,SWT.NONE);
dataTypeColumn.getColumn().setText(“数据类型”);
dataTypeColumn.getColumn().setWidth(200);
dataTypeColumn.setLabelProvider(新ColumnLabelProvider(){
@凌驾
公共字符串getText(对象元素){
return((DataSourceModel)元素).getDataType();
}
});
TableViewerColumn inputFieldFormatColumn=新的TableViewerColumn(查看器,SWT.NONE);
inputFieldFormatColumn.getColumn().setText(“输入字段格式”);
inputFieldFormatColumn.getColumn().setWidth(200);
inputFieldFormatColumn.setLabelProvider(新ColumnLabelProvider(){
@凌驾
公共字符串getText(对象元素){
return((DataSourceModel)元素).getInputFieldFormat();
}
});
TableViewerColumn displayNameColumn=新的TableViewerColumn(查看器,SWT.NONE);
displayNameColumn.getColumn().setText(“显示名称”);
displayNameColumn.getColumn().setWidth(200);
displayNameColumn.setLabelProvider(新ColumnLabelProvider(){
@凌驾
公共字符串getText(对象元素){
返回((DataSourceModel)元素).getDisplayName();
}
});
TableViewerColumn displayFormatColumn=新的TableViewerColumn(查看器,SWT.NONE);
displayFormatColumn.getColumn().setText(“显示格式”);
displayFormatColumn.getColumn().setWidth(200);
displayFormatColumn.setLabelProvider(新ColumnLabelProvider(){
@凌驾
公共字符串getText(对象元素){
return((DataSourceModel)元素).getDisplayFormat();
}
});
setContentProvider(ArrayContentProvider.getInstance());
System.out.println(RetrieveExcelData.getDataSourceFieldList());
setInput(RetrieveExcelData.GetDataSourceFieldList());
viewer.getTable().setLinesVisible(true);
viewer.getTable().setheadervible(true);
}
公共静态void main(字符串[]args){
显示=新显示();
外壳=新外壳(显示);
setLayout(新的FillLayout());
新的TableViewer示例(shell);
shell.open();
而(!shell.isDisposed()){
如果(!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
设置输入类

公共类检索ExcelData{
公共静态列表getDataSourceFieldList(){
String filename=“D:\\ServiceOrders\u point\u Org\u morethan 500.xlsx”;
List sheetData=new ArrayList();
try(FileInputStream fis=newfileinputstream(文件名)){
XSSF工作簿=新XSSF工作簿(fis);
XSSFSheet myExcelSheet=workbook.getSheetAt(0);
XSSFRow row=(XSSFRow)myExcelSheet.getRow(0);
迭代器单元格=行。单元格迭代器();
列表数据=新的ArrayList();
而(cells.hasNext()){
XSSFCell cell=(XSSFCell)cells.next();
添加数据(单元格);
} 
sheetData.add(数据);
}catch(filenotfounde异常){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回showceldata(sheetData);
}
专用静态列表showExcelData(列表数据){
列表结果