2

假设我有两个单选按钮,我想要一个默认选中,并且我想要SelectionListener执行一些操作。

当我尝试明显的方法时它不起作用:

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

button.addSelectionListener( new SelectionAdapter() {
    public void widgetDefaultSelected(SelectionEvent e){
        doAction() ;
    }
}) ;

doAction()永远不会触发...

谁能解释为什么SelectionEvent永远不会触发默认选择?

4

2 回答 2

2

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

JavaDoc说明了一切。这是一个依赖于平台的操作,可能会在某些Controls 上发生。AFAIK,ButtonwithSWT.CHECK不是其中之一。

于 2012-08-30T14:41:34.640 回答
1

将您的代码更改为:

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

并避免使用widgetDefaultSelected().

于 2012-08-30T14:40:23.430 回答