【发布时间】:2012-02-04 11:44:21
【问题描述】:
我正在开发一个使用两个表的程序。第一个表有一个选择侦听器,用于向第二个表添加新项目。根据第一个表的值,我希望将另一个选择侦听器添加到第二个表中。如果该值是其他值,我希望删除选择侦听器。我可以将选择侦听器添加到第二个表中,但似乎无法删除它。如果第一个表要求第二个表有选择监听器,而选择监听器似乎加倍了。
tblFirst.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
TableItem ti = tblFirst.getSelection()[0];
String selectedText = ti.getText();
SelectionListener myListener = new SelectionListener(){
@Override
public void widgetSelected(SelectionEvent arg0) {
//do something here
}
}
if(selectedText.equals("sometext")) {
tblSecond.removeSelectionListener(myListener);
tblSecond.addSelectionListener(myListener);
}
}
在上面的示例中,每次我选择带有文本“sometext”的项目时都会添加 SelectionListener。如果我选择了 3 次,SelectionListener 会被触发 3 次。 removeSelectionListener 不会先删除 selectionlistener。
我该如何进行这项工作?
【问题讨论】:
标签: java swt selection addeventlistener