我有一个表,其中有多个表项可用。其中,为某些表格项目设置了背景和前景色。
在选择彩色项目时,由于文本颜色为白色,因此文本难以阅读所以,我需要将前景色更改为默认值,即。黑色的。我已经使用选择侦听器完成了它
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
.
有人可以帮忙吗?
您需要在某处记住选择侦听器,可能是管理表的类中的一个字段。
private SelectionListener listener;
...
listener = new SelectionListener() ....
...
table.addSelectionListener(listener);
...
table.removeSelectionListener(listener);
确保只创建一次侦听器(可能在类构造函数中)。
另一种方法是仅添加侦听器(一次),然后在侦听器中测试一个标志以确定您是否设置了前景。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句