假设我有两个单选按钮,我想要一个默认选择,我希望SelectionListener
做一些动作。
当我尝试这种显而易见的方式时,它不起作用:
Button button = new Button(parent, SWT.RADIO) ;
button.setSelection(true) ;
button.addSelectionListener( new SelectionAdapter() {
public void widgetDefaultSelected(SelectionEvent e){
doAction() ;
}
}) ;
永远不会触发 doAction()
......
有人可以解释为什么永远不会触发默认选择的SelectionEvent
吗?
答案 0 :(得分:2)
例如,在某些平台上,当用户双击某个项目或在文本中键入返回值时,会在列表中进行默认选择。在某些平台上,按下鼠标按钮或键时会发生事件。在其他情况下,它会在释放鼠标或键时发生。导致此事件的确切键或鼠标手势是特定于平台的。
JavaDoc说明了一切。这是一些可能在某些Control
上发生的与平台相关的操作。 AFAIK,Button
SWT.CHECK
不是其中之一。
答案 1 :(得分:1)
将您的代码更改为:
button.addSelectionListener( new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e){
doAction() ;
}
}) ;
并避免使用widgetDefaultSelected()
。