了解swt SelectionListener中的widgetSelected事件和widgetDefaultSelected事件?

时间:2015-03-11 12:47:04

标签: java swt listener

我无法理解SWT SelectionListener中两种方法之间的区别。 javadoc如下:

  

空隙   org.eclipse.swt.events.SelectionListener。的 widgetSelected (SelectionEvent   E)

     

在控件中进行选择时发送。

     

例如,当用户选择项目时,选择发生在列表中   或带键盘或鼠标的项目。在某些平台上,活动   按下鼠标按钮或键时发生。在其他人身上,它发生了   当鼠标或键被释放时。确切的键或鼠标手势   导致此事件是特定于平台的。

     

空隙   org.eclipse.swt.events.SelectionListener。的 widgetDefaultSelected (SelectionEvent   E)

     

在控件中发生默认选择时发送。

     

例如,在某些平台上,默认选择发生在List中   用户双击文本中的项目或类型返回。一些   平台,按下鼠标按钮或键时发生事件。上   其他,它发生在释放鼠标或键时。确切的关键或   导致此事件的鼠标手势是特定于平台的。

当用户以任何方式选择小部件时,听起来像是widgetSelected()。当用户完成与小部件交互时,将调用widgetDefaultSelected()。对于Text小部件,按Enter键;对于List,可以双击列表项;对于日期,按Enter键。

这种理解是否正确?

1 个答案:

答案 0 :(得分:1)

你的一般理解是正确的,尽管术语“完成了”#39;在所有情况下可能都不是100%准确。

发送(默认)选择事件的窗口小部件记录了各自addSelectionListener()方法的JavaDoc中的特定详细信息。在那里,您可以阅读是否以及何时发送widgetSelected()和/或widgetDefaultSelected()

例如,如果您查看Link#addSelectionListener JavaDoc,您将看到永远不会调用widgetDefaultSelected()