我无法理解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键。
这种理解是否正确?
答案 0 :(得分:1)
你的一般理解是正确的,尽管术语“完成了”#39;在所有情况下可能都不是100%准确。
发送(默认)选择事件的窗口小部件记录了各自addSelectionListener()
方法的JavaDoc中的特定详细信息。在那里,您可以阅读是否以及何时发送widgetSelected()
和/或widgetDefaultSelected()
。
例如,如果您查看Link#addSelectionListener
JavaDoc,您将看到永远不会调用widgetDefaultSelected()
。