我尝试使用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;
}
});
感谢您的帮助。
答案 0 :(得分:1)
收听SWT.Selection
事件而不是SWT.Modify
。
还要考虑使用ListViewer代替具有addSelectionChangedListener()
和addPostSelectionChangedListener()
方法的列表(当用户在导航时“停止”项目时会使用后者带键盘的列表,而不是通知每个项目)。
答案 1 :(得分:1)
您应该将监听器注册到您的模型中,该模型使用列表可视化并监听其中的更改而不是窗口小部件。
答案 2 :(得分:0)
为什么不创建自己的自定义列表(请查看http://www.snip2code.com/Snippet/11489/Custom-SWT-List-Box)并直接管理班级内的活动?