2

SelectionListener2つのラジオボタンがあり、1つをデフォルトで選択し、に何らかのアクションを実行させたいとします。

私がそれがうまくいかなかった明白な方法を試したとき:

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

たとえば、一部のプラットフォームでは、ユーザーがアイテムをダブルクリックするか、テキストに戻り値を入力すると、リストでデフォルトの選択が行われます。一部のプラットフォームでは、マウス ボタンまたはキーが押されたときにイベントが発生します。他のものでは、マウスまたはキーが離されたときに発生します。このイベントを発生させる正確なキーまたはマウス ジェスチャは、プラットフォーム固有です。

JavaDocがすべてを語っています。これは、一部の で発生する可能性があるプラットフォーム依存のアクションですControl。私の知る限り、ButtonwithSWT.CHECKはそれらの1つではありません。

于 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 に答える