簡體   English   中英

如何為java.util.List的數組列表添加偵聽器

[英]How to add a listener for a array list of java.util.List

我創建了一個數組列表,當使用鼠標按下事件選擇了列表項時,必須為其添加一個偵聽器,以便如何做到這一點。我為其創建數組列表的代碼如下

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())));
    }
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM