如何收听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;
            }
        });

谢谢你的帮助。

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

还可以考虑使用ListViewer而不是List,后者具有addSelectionChangedListener()addPostSelectionChangedListener()方法(当用户使用键盘在列表中导航时"停止"某个项目时,会通知后者,而不是通知每个项目)。

您应该将监听器注册到您的模型中,该模型通过列表进行可视化,并在那里而不是小部件中侦听更改。

为什么不创建自己的自定义列表(例如。http://www.snip2code.com/Snippet/11489/Custom-SWT-List-Box)并直接管理班级内的事件?

最新更新