删除表项上的选择侦听器

高尔

我有一个表,其中有多个表项可用。其中,为某些表格项目设置了背景和前景色。

在选择彩色项目时,由于文本颜色为白色,因此文本难以阅读所以,我需要将前景色更改为默认值,即。黑色的。我已经使用选择侦听器完成了它

private SelectionListener selectionListener;

    private void mouseTrackListener() {
        selectionListener = new SelectionListener() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                        ((TableItem) e.item).setForeground(null);
                    }
                }
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent e) {

            }
        };

        this.table.addSelectionListener(selectionListener);

        this.table.removeSelectionListener(selectionListener);
    }

并且颜色成功更改。

但是现在我正在选择任何其他没有颜色的项目,所以我想删除上面的选择侦听器并将文本颜色设置为彩色即。白色的。我不知道如何使用this.table.removeSelectionListener.

有人可以帮忙吗?

格雷格-449

您需要在某处记住选择侦听器,可能是管理表的类中的一个字段。

private SelectionListener listener;

...

listener = new SelectionListener() ....


...

table.addSelectionListener(listener);

...

table.removeSelectionListener(listener);

确保只创建一次侦听器(可能在类构造函数中)。

另一种方法是仅添加侦听器(一次),然后在侦听器中测试一个标志以确定您是否设置了前景。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章