widgetDefaultSelected()方法永远不会被触发?

时间:2012-08-30 13:27:01

标签: java events radio-button swt

假设我有两个单选按钮,我想要一个默认选择,我希望SelectionListener做一些动作。

当我尝试这种显而易见的方式时,它不起作用:

Button button = new Button(parent, SWT.RADIO) ;
button.setSelection(true) ;

button.addSelectionListener( new SelectionAdapter() {
    public void widgetDefaultSelected(SelectionEvent e){
        doAction() ;
    }
}) ;
永远不会触发

doAction() ......

有人可以解释为什么永远不会触发默认选择的SelectionEvent吗?

2 个答案:

答案 0 :(得分:2)

  

例如,在某些平台上,当用户双击某个项目或在文本中键入返回值时,会在列表中进行默认选择。在某些平台上,按下鼠标按钮或键时会发生事件。在其他情况下,它会在释放鼠标或键时发生。导致此事件的确切键或鼠标手势是特定于平台的。

JavaDoc说明了一切。这是一些可能在某些Control上发生的与平台相关的操作。 AFAIK,Button SWT.CHECK不是其中之一。

答案 1 :(得分:1)

将您的代码更改为:

button.addSelectionListener( new SelectionAdapter() {
    @Override
    public void widgetSelected(SelectionEvent e){
        doAction() ;
    }
}) ;

并避免使用widgetDefaultSelected()