如何收听SWT列表内容的修改?

时间:2012-01-24 13:49:15

标签: eclipse swt

我尝试使用SWT.Modify事件的监听器。这适用于Text但似乎不适用于List。也就是说,以下内容不起作用:

    myList = new List(listComp, SWT.MULTI|SWT.BORDER|SWT.V_SCROLL);
    myList.addListener(SWT.Modify, new Listener() {
        public void handleEvent(Event e) {
            System.out.println("My list modified");
            dirty=true;
            }
        });

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

收听SWT.Selection事件而不是SWT.Modify

还要考虑使用ListViewer代替具有addSelectionChangedListener()addPostSelectionChangedListener()方法的列表(当用户在导航时“停止”项目时会使用后者带键盘的列表,而不是通知每个项目)。

答案 1 :(得分:1)

您应该将监听器注册到您的模型中,该模型使用列表可视化并监听其中的更改而不是窗口小部件。

答案 2 :(得分:0)

为什么不创建自己的自定义列表(请查看http://www.snip2code.com/Snippet/11489/Custom-SWT-List-Box)并直接管理班级内的活动?