Java SWT:widgetSelected 与 widgetDefaultSelected
例如,我想在用户单击按钮时执行某些操作。我该用哪个?文档似乎没有说得很清楚
更新
快速测试显示,触发了 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?
For example I want to execute something when user clicks on a button. Which do I use? The documentation didn't appear to make it very clear
UPDATE
A quick test shows that Widget Selected is triggered but not Default Selected.
In TasksView.main()
TasksView view = new TasksView(shell, SWT.None);
TasksController controller = new TasksController(view);
In 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");
}
}
}
btw, Did I do MVC correctly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
widgetSelected
。事实上,更好的方法是简单地扩展SelectionAdapter
并仅重写widgetSelected
方法并完全忽略widgetDefaultSelected
。Use
widgetSelected
. In fact, all the better is to simply extendSelectionAdapter
and only override thewidgetSelected
method and completely ignorewidgetDefaultSelected
.SelectionListener.widgetDefaultSelected(e)
具有依赖于工具包的行为。我通常只调用SelectionListener.widgetSelected(...)
。 (请注意,这不是SelectionAdapter.widgetDefaultSelected(e)
中的默认设置 - 您必须自己执行此操作。SelectionListener.widgetDefaultSelected(e)
has a toolkit dependent behavior. I usually just invokeSelectionListener.widgetSelected(...)
. (Note that this is not the default inSelectionAdapter.widgetDefaultSelected(e)
- you will have to do this yourself.