Java SWT:如何删除 SWT 表中选定的行

发布于 2024-11-30 12:22:53 字数 1216 浏览 0 评论 0原文

我已经实现了一个 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();
    }
}

I have implemented one SWT table having a button widget in one column. On click of a button I am deleting the entire row. But I don't understand how to refresh/redraw/update the table.

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();
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

起风了 2024-12-07 12:22:53

检查 SWT 代码段 从表中删除所选项目

只需调用 table.remove(int rowIdx); 而不是 item.dispose();

Check SWT snippet remove selected items from Table.

Just call table.remove(int rowIdx); instead of item.dispose();

云柯 2024-12-07 12:22:53
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表的解决方案。

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);
}

This is the solution for refresh the SWT table.

幽蝶幻影 2024-12-07 12:22:53

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

Use the JFace TableViewer with a model class, delete the object from the model and refresh the TableViewer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文