我创建了一个数组列表,当使用鼠标按下事件选择列表项时,必须为它添加一个监听器,以便如何完成。我已经创建了数组列表的代码如下
final java.util.List<Object> listSort = new ArrayList<>();
for(String key: descriptionMappernewer.keySet())
listSort.add(key);
final MyFilter filter = new MyFilter();
final ListViewer viewer = new ListViewer(this);
//viewer.getList();
viewer.getList().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
//viewer.getList();
viewer.setContentProvider(new ArrayContentProvider());
viewer.setInput(listSort);
现在我需要为它添加鼠标按下事件监听器。之前我曾写过SWT的鼠标事件监听器,但现在必须改变。早期的SWT监听器看起来像这样
list.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {
int index = list.getSelectionIndex();
txtMethodDescription.setText(descriptionMappernewer.get( list.getItem(index)));
}
});
那么请帮助我如何将监听器添加到java.util.List
的数组列表中答案 0 :(得分:3)
java.util.List
不是用户界面对象,不支持侦听器。
代码中的用户界面对象是ListViewer
。由于这是一个JFace对象,因此使用addSelectionListener
进行选择:
viewer.addSelectionChangedListener(new ISelectionChangedListener()
{
@Override
public void selectionChanged(final SelectionChangedEvent event)
{
IStructuredSelection selection = (IStructuredSelection)viewer.getSelection();
txtMethodDescription.setText(descriptionMappernewer.get(selection.getFirstElement())));
}
});