[英]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.