我正在为我的 TableViewer 列使用 ColumnLabelProvider。最后一列是为按钮设置的。这是我的代码
case 7: {
Map<Object, Button> buttons = new HashMap<Object, Button>();
TableItem item = (TableItem) cell.getItem();
Button button;
String filename = (((AplotSaveDataModel.SaveData) element).getFileDir() + "/" + ((AplotSaveDataModel.SaveData) element).getfileName());
if(buttons.containsKey(cell.getElement())) {
button = buttons.get(cell.getElement());
} else {
button = new Button((Composite) cell.getViewerRow().getControl(),SWT.PUSH);
button.setImage(appReg.getImage("PDFViewerLabel.ICON"));
button.setData("file.id", filename);
buttons.put(cell.getElement(), button);
}
TableEditor editor = new TableEditor(item.getParent());
editor.grabHorizontal = true;
editor.grabVertical = true;
editor.setEditor(button , item, cell.getColumnIndex());
button.addListener(SWT.Selection, new SelectionListener(item, button, cell.getElement()));
editor.layout();
break;
}
我的问题:
为什么你必须有地图?
我试图在那里弄清楚地图的目的。
似乎您可以在没有地图的情况下创建按钮。