例如,当用户单击按钮时,我想执行一些操作。我该用哪一个?文件似乎没有很清楚地表明
更新
快速测试显示已触发Widget Selected,但未触发Default Selected。
在TasksView.main()
中
TasksView view = new TasksView(shell, SWT.None);
TasksController controller = new TasksController(view);
在TasksController
中
public class TasksController extends ControllerAbstract {
protected TasksView view;
public TasksController(TasksView view) {
this.view = view;
view.addTaskListener(new AddTaskListener());
}
protected class AddTaskListener implements SelectionListener {
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
System.out.println("Default Selected");
}
@Override
public void widgetSelected(SelectionEvent arg0) {
System.out.println("Widget Selected");
}
}
}
顺便说一句,我做MVC正确吗?
使用widgetSelected
。事实上,最好是简单地扩展SelectionAdapter
,只覆盖widgetSelected
方法,完全忽略widgetDefaultSelected
。
SelectionListener.widgetDefaultSelected(e)
具有依赖于工具包的行为。我通常只调用SelectionListener.widgetSelected(...)
。(请注意,这不是SelectionAdapter.widgetDefaultSelected(e)
中的默认设置-您必须自己完成。