Java SWT: как удалить выбранную строку в таблице SWT - PullRequest
0 голосов
/ 19 августа 2011

Я реализовал одну таблицу 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();
    }
}

Ответы [ 3 ]

4 голосов
/ 19 августа 2011

Проверить фрагмент SWT удалить выбранные элементы из таблицы .

Просто позвоните table.remove(int rowIdx); вместо item.dispose();

1 голос
/ 24 августа 2011

Использование JFace TableViewer с классом модели, удаление объекта из модели и обновление TableViewer.

0 голосов
/ 22 августа 2011
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.

...