0

我正在为我的 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;
}

我的问题:
为什么你必须有地图?
我试图在那里弄清楚地图的目的。
似乎您可以在没有地图的情况下创建按钮。

4

0 回答 0