【问题标题】:Java SWT: how to delete the selected row in a SWT tableJava SWT:如何删除 SWT 表中的选定行
【发布时间】:2011-08-19 07:41:10
【问题描述】:

我已经实现了一个 SWT 表,其中一列中有一个按钮小部件。单击按钮后,我将删除整行。但我不明白如何刷新/重绘/更新表格。

Table processListTable;
TableItem tableItem;
Image deleteImage = Activator.getImageDescriptor("icons/trash.gif").createImage();

private void addRowInTable() {
    tableItem = new TableItem(processListTable, SWT.FILL);
    tableItem.setText(0, "value 1");
    tableItem.setText(1, "value 2");

    TableEditor editor = new TableEditor(processListTable);

    final Button deleteButton = new Button(processListTable, SWT.PUSH | SWT.FILL);
    deleteButton.pack();

    editor.minimumWidth = deleteButtonButton.getSize().x;
    editor.horizontalAlignment = SWT.CENTER;
    editor.setEditor(deleteButtonButton, tableItem, 2);
    deleteButtonButton.setImage(deleteImage);
    deleteButtonButton.addListener(SWT.Selection, new SelectionListener(tableItem, checkButton));
}

class SelectionListener implements Listener {
    TableItem item;
    Button deleteButton;

    public SelectionListener(TableItem item, Button deleteButton) {
        this.item = item;
        this.deleteButton = deleteButton;
    }

    public void handleEvent(Event event) {

        this.deleteButton.dispose();
        this.item.dispose();
    }
}

【问题讨论】:

    标签: swt eclipse-rcp


    【解决方案1】:

    检查 SWT sn-p remove selected items from Table

    只需拨打table.remove(int rowIdx); 而不是item.dispose();

    【讨论】:

    • 删除不起作用。因为我在列中实现了按钮。
    【解决方案2】:
    public void handleEvent(Event event) {
        this.deleteButton.dispose();
        this.trash.dispose();
        this.item .dispose();
    
        Table table = viewer.getTable();
        table.getColumn(2).pack();
        table.getColumn(2).setWidth(100);
    }
    

    这是刷新 SWT 表的解决方案。

    【讨论】:

      【解决方案3】:

      将 JFace TableViewer 与模型类一起使用,从模型中删除对象并刷新 TableViewer。

      【讨论】:

        猜你喜欢
        • 2019-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-26
        • 1970-01-01
        • 1970-01-01
        • 2019-03-10
        相关资源
        最近更新 更多