当前位置: 首页 > 知识库问答 >
问题:

删除表项上的选择侦听器

齐兴运
2023-03-14

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

在选择彩色项目时,由于文本颜色为白色,文本很难阅读,因此,我需要将前面的颜色更改为默认颜色,即黑色。我是用选择侦听器完成的

this.table.addSelectionListener(new SelectionListener() {

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

            }

            @Override
            public void widgetDefaultSelected(SelectionEvent e) {
                
            }
        });

成功地改变了颜色。

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

有人能帮忙吗?

共有1个答案

孟永望
2023-03-14

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

private SelectionListener listener;

...

listener = new SelectionListener() ....


...

table.addSelectionListener(listener);

...

table.removeSelectionListener(listener);
 类似资料:
  • 除了使用之外,是否有其他方法可以侦听已选择的单元格(即使是带有)的单元格)? 我有一个带有行和列侦听器的JTable。当选择已经选择的单元格时,两个侦听器都不会触发: 我的目标是打开/关闭电池。它是有效的,除了监听器在选择一个已经选择的单元格时不会触发之外,这是通过上面的SSCCE表示的。 似乎没有任何监听器可以连接到(或者它的模型/选择模型)来处理这个问题,除非我使用并手动管理Cooridate

  • 这看起来很简单,但我没有找到答案。 我有一个基本的的值没有改变,我也希望知道用户选择了一些东西并重新触发整个处理。所以可能不是我想要使用的,但我没有找到该使用什么。 有一个基本的select标记和一些选项在里面,这是可能的吗?如果不是,实现这一目标的最佳方法可能是什么?(我懒惰的手指宁愿实现一个自定义的React下拉列表,仅作为最后的手段)。 谢谢你们!

  • 问题内容: 如果选择了一个不同的值,组合框将触发一个事件。我还希望能够收听被选中的SAME项(即valueProperty不变)。似乎没有办法做到这一点。 我尝试扩展ComboBox并找到一种方法来监听关闭的小弹出菜单,但我什至无法访问它!我能做什么? 这是我正在尝试的: 问题答案: 更改值之前,可能会触发此事件处理程序。

  • 我有一个Windows Phone应用程序,其中一个ListPicker绑定到一个ObservableCollection和一个选定的项目: 在ViewModel中: 当我试图从按钮处理程序的列表中删除所选项目时,我得到一个InvalidOperationException(SelectedItem必须始终设置为有效值): 我希望将SseltedCon条件设置为null(这实际上是列表中的第一个项

  • 问题内容: 一个典型的Redis聊天示例将如下所示(仅举一个这样的示例,请参见https://github.com/emrahayanoglu/Socket.io- Redis-RealTime-Chat- Example/blob/master/chatServer.js ): 但是,这里的问题是,当“断开连接”时,侦听器仍然处于连接状态。控制台将继续打印出。如果要检查的事件列表,他们仍然会发现

  • 我有两个屏幕..首先是闪屏,在这里我借助firebase.auth()检查用户是否已经存在。onAuthStateChanged侦听器。如果用户为空,它将转到另一个firebase.auth()的登录屏幕。onAuthStateChanged侦听器用于在电话验证后获取用户,如果用户之前未注册,则将用户移至UserDetails屏幕以获取更多用户信息,或者移至主屏幕..同样的检查也在闪屏上进行,以确