java - 如何为 java.util.List 的数组列表添加监听器

标签 java arraylist swt onclicklistener jface

我已经创建了一个数组列表,当使用鼠标按下事件选择列表项时,必须为其添加一个监听器,所以如何才能做到这一点。我创建数组列表的代码如下

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/

相关文章:

java - JFace 对话框按钮栏出现故障

java - 应将哪个 Shell 传递给 WizardDialog 构造函数

java - UnicodeFont 渲染似乎阻止了其他所有内容的渲染?

Java大对象垃圾回收

java - 如何使用 mockito 模拟 Autowiring 字段

java - 我如何才能找到我的 int[] ArrayList 是否包含 int[]

java - 使用 nodeList 创建 XML 文档

java - 在存储在 HashMap 中的 ArrayList 中搜索值

Java - 如何使用 for each 循环检查对象列表中某个值的不同出现次数

java - 如何刷新 SWT 标签?