我已经创建了一个数组列表,当使用鼠标按下事件选择列表项时,必须为其添加一个监听器,所以如何才能做到这一点。我创建数组列表的代码如下
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 的数组列表
最佳答案
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())));
}
});
关于java - 如何为 java.util.List 的数组列表添加监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25278907/